From 054f7c0c51b8a4a86e3d1fc10e805eb912d7ad61 Mon Sep 17 00:00:00 2001 From: Xuhui Miao Date: Fri, 30 Jun 2023 03:24:58 +0000 Subject: [PATCH] Merged PR 8350983: Merge code from master to internal Highlight change, the DHCP config removed from master branch. files/image_config/resolv-config/resolv.conf Related work items: #49, #2598, #11862, #12530, #14000, #14549, #14814, #15077, #15252, #15253, #15357, #15384, #15394, #15399, #15405, #15566, #15591, #15592, #15593, #15602, #15604, #15611, #15621, #15625, #15634, #15635 --- .../run-test-scheduler-template.yml | 6 +- README.md | 25 ++ azure-pipelines.yml | 30 ++- build_debian.sh | 29 ++- build_image.sh | 2 +- .../x86_64-arista_7050_qx32/platform.json | 12 +- .../x86_64-arista_7050_qx32s/platform.json | 18 +- .../x86_64-dell_s6100_c2538-r0/installer.conf | 2 +- .../x86_64-mlnx_msn2700-r0/installer.conf | 2 +- .../armhf-nokia_ixs7215_52x-r0/installer.conf | 1 + .../x86_64-kvm_x86_64-r0/NPU/sai_npu.profile | 5 + .../docker-database/docker-database-init.sh | 4 + dockers/docker-dhcp-relay/start.sh | 4 + dockers/docker-eventd/start.sh | 3 + dockers/docker-fpm-frr/docker_init.sh | 4 + dockers/docker-iccpd/start.sh | 4 + dockers/docker-lldp/lldpmgrd | 5 +- dockers/docker-lldp/start.sh | 4 + dockers/docker-macsec/start.sh | 4 + dockers/docker-macsec/supervisord.conf | 11 + dockers/docker-mux/docker-init.sh | 4 + dockers/docker-nat/start.sh | 4 + dockers/docker-orchagent/docker-init.j2 | 4 + .../docker-platform-monitor/docker_init.j2 | 4 + .../docker-router-advertiser/docker-init.sh | 4 + dockers/docker-sflow/Dockerfile.j2 | 1 + dockers/docker-sflow/start.sh | 5 + dockers/docker-sflow/supervisord.conf | 11 + dockers/docker-snmp/start.sh | 4 + dockers/docker-sonic-mgmt-framework/start.sh | 4 + dockers/docker-sonic-mgmt/Dockerfile.j2 | 17 +- dockers/docker-sonic-p4rt/start.sh | 4 + dockers/docker-sonic-telemetry/start.sh | 4 + dockers/docker-teamd/start.sh | 4 + .../versions-deb-bullseye | 5 +- .../versions-deb-bullseye-arm64 | 2 - .../versions-deb-bullseye-armhf | 1 - .../build-sonic-slave-bullseye/versions-py3 | 10 +- .../versions-py3-all-arm64 | 5 - .../versions-deb-buster-arm64 | 4 +- .../versions-deb-buster-armhf | 4 +- files/build/versions/default/versions-docker | 24 +- files/build/versions/default/versions-git | 20 +- files/build/versions/default/versions-mirror | 20 +- files/build/versions/default/versions-web | 80 +++---- .../docker-base-buster/versions-deb-buster | 8 +- .../versions-deb-bullseye | 2 +- .../versions-deb-buster | 2 +- .../docker-config-engine-buster/versions-py3 | 2 +- .../docker-database/versions-deb-bullseye | 2 +- .../docker-dhcp-relay/versions-deb-bullseye | 2 +- .../docker-eventd/versions-deb-bullseye | 2 +- .../docker-fpm-frr/versions-deb-bullseye | 2 +- .../versions-deb-bullseye | 2 +- .../versions-deb-bullseye | 2 +- .../docker-gbsyncd-vs/versions-deb-bullseye | 2 +- .../dockers/docker-lldp/versions-deb-bullseye | 2 +- .../docker-macsec/versions-deb-bullseye | 2 +- .../dockers/docker-mux/versions-deb-bullseye | 2 +- .../dockers/docker-nat/versions-deb-bullseye | 2 +- .../docker-orchagent/versions-deb-bullseye | 2 +- .../versions-deb-bullseye | 6 +- .../dockers/docker-ptf-sai/versions-py3 | 2 +- .../dockers/docker-ptf/versions-deb-buster | 18 +- .../versions/dockers/docker-ptf/versions-py2 | 2 +- .../versions-deb-bullseye | 2 +- .../docker-sflow/versions-deb-bullseye | 2 +- .../dockers/docker-snmp/versions-deb-bullseye | 2 +- .../versions-deb-buster | 6 +- .../docker-sonic-mgmt-framework/versions-py3 | 4 +- .../versions-deb-bullseye | 2 +- .../dockers/docker-sonic-vs/versions-py3 | 10 +- .../versions-deb-bullseye | 2 +- .../docker-syncd-brcm/versions-deb-bullseye | 2 +- .../docker-syncd-centec/versions-deb-bullseye | 2 +- .../docker-syncd-mlnx/versions-deb-bullseye | 2 +- .../docker-syncd-vs/versions-deb-bullseye | 2 +- .../docker-teamd/versions-deb-bullseye | 2 +- .../versions-deb-bullseye | 23 +- .../dockers/sonic-slave-bullseye/versions-py3 | 4 +- .../sonic-slave-buster/versions-deb-buster | 50 ++-- .../dockers/sonic-slave-buster/versions-py3 | 6 +- .../versions/host-image/versions-deb-bullseye | 3 +- files/build/versions/host-image/versions-py3 | 10 +- .../build_templates/sonic_debian_extension.j2 | 9 + .../interfaces/interfaces-config.sh | 2 + .../resolv-config/resolv-config.service | 15 ++ .../resolv-config/resolv-config.sh | 61 +++++ files/image_config/resolv-config/resolv.conf | 1 - .../resolv-config/resolv.conf.head | 2 + .../image_config/resolv-config/resolv.conf.j2 | 3 + .../resolv-config/update-containers | 7 + ...y-fail-if-daemon-reload-command-runs.patch | 24 ++ files/scripts/swss.sh | 2 +- installer/sharch_body.sh | 8 +- onie-mk-demo.sh | 48 +++- .../barefoot/sonic-platform-modules-arista | 2 +- .../broadcom/sonic-platform-modules-arista | 2 +- platform/marvell-arm64/sai.mk | 2 +- platform/marvell-armhf/platform.conf | 3 +- platform/p4/docker-sonic-p4/Dockerfile.j2 | 2 +- platform/vs/docker-sonic-vs/Dockerfile.j2 | 1 + .../vs/docker-sonic-vs/platform-npu-2p.json | 23 ++ platform/vs/docker-sonic-vs/start.sh | 18 +- rules/docker-database.mk | 1 + rules/docker-dhcp-relay.mk | 1 + rules/docker-eventd.mk | 1 + rules/docker-fpm-frr.mk | 1 + rules/docker-iccpd.mk | 1 + rules/docker-lldp.mk | 1 + rules/docker-macsec.mk | 1 + rules/docker-mux.mk | 1 + rules/docker-nat.mk | 1 + rules/docker-orchagent.mk | 1 + rules/docker-p4rt.mk | 1 + rules/docker-platform-monitor.mk | 1 + rules/docker-router-advertiser.mk | 1 + rules/docker-sflow.mk | 1 + rules/docker-snmp.mk | 1 + rules/docker-sonic-mgmt-framework.mk | 1 + rules/docker-teamd.mk | 1 + rules/docker-telemetry.mk | 1 + scripts/sign_image_dev.sh | 11 + src/dhcpmon | 2 +- src/sonic-config-engine/minigraph.py | 9 +- .../tests/data/dns/resolv.conf | 3 + .../tests/data/dns/static_dns.json | 6 + .../tests/multi_npu_data/sample-minigraph.xml | 5 + .../tests/simple-sample-graph-case.xml | 6 + .../tests/simple-sample-graph-metadata.xml | 6 + src/sonic-config-engine/tests/test_cfggen.py | 5 + src/sonic-config-engine/tests/test_j2files.py | 8 + .../tests/test_minigraph_case.py | 5 + .../tests/test_multinpu_cfggen.py | 11 + src/sonic-host-services | 2 +- .../pit-sysdiag/cases/cpu_tc/config.json | 6 + .../pit-sysdiag/cases/memory_tc/config.json | 6 + .../pit-sysdiag/cases/oob_tc/config.json | 6 + .../pit-sysdiag/cases/rtc_tc/config.json | 6 + .../pit-sysdiag/cases/sensor_tc/config.json | 6 + .../pit-sysdiag/cases/ssd_tc/config.json | 6 + .../case_config.json | 52 ++++ .../platform_config.json | 10 + src/sonic-pit/pit-sysdiag/src/cpu_tc.py | 107 +++++++++ src/sonic-pit/pit-sysdiag/src/memory_tc.py | 188 +++++++++++++++ src/sonic-pit/pit-sysdiag/src/oob_tc.py | 140 +++++++++++ src/sonic-pit/pit-sysdiag/src/rtc_tc.py | 144 +++++++++++ src/sonic-pit/pit-sysdiag/src/sensor_tc.py | 121 ++++++++++ src/sonic-pit/pit-sysdiag/src/ssd_tc.py | 224 ++++++++++++++++++ .../sonic_py_common/device_info.py | 10 + src/sonic-swss | 2 +- src/sonic-swss-common | 2 +- src/sonic-yang-models/doc/Configuration.md | 20 ++ src/sonic-yang-models/setup.py | 1 + .../tests/files/sample_config_db.json | 13 + .../yang_model_tests/tests/mux-linkmgr.json | 8 + .../tests_config/mux-linkmgr.json | 26 ++ .../yang-models/sonic-mux-linkmgr.yang | 88 +++++++ .../systemd-sonic-generator.c | 2 +- 159 files changed, 1897 insertions(+), 255 deletions(-) create mode 100644 device/virtual/x86_64-kvm_x86_64-r0/NPU/sai_npu.profile create mode 100644 dockers/docker-sflow/start.sh delete mode 100644 files/build/versions/build/build-sonic-slave-bullseye/versions-py3-all-arm64 create mode 100644 files/image_config/resolv-config/resolv-config.service create mode 100755 files/image_config/resolv-config/resolv-config.sh delete mode 100644 files/image_config/resolv-config/resolv.conf create mode 100644 files/image_config/resolv-config/resolv.conf.head create mode 100644 files/image_config/resolv-config/resolv.conf.j2 create mode 100755 files/image_config/resolv-config/update-containers create mode 100644 files/image_config/systemd/systemd-udevd/fix-udev-rule-may-fail-if-daemon-reload-command-runs.patch create mode 100644 platform/vs/docker-sonic-vs/platform-npu-2p.json create mode 100755 scripts/sign_image_dev.sh create mode 100644 src/sonic-config-engine/tests/data/dns/resolv.conf create mode 100644 src/sonic-config-engine/tests/data/dns/static_dns.json create mode 100644 src/sonic-pit/pit-sysdiag/cases/cpu_tc/config.json create mode 100644 src/sonic-pit/pit-sysdiag/cases/memory_tc/config.json create mode 100644 src/sonic-pit/pit-sysdiag/cases/oob_tc/config.json create mode 100644 src/sonic-pit/pit-sysdiag/cases/rtc_tc/config.json create mode 100644 src/sonic-pit/pit-sysdiag/cases/sensor_tc/config.json create mode 100644 src/sonic-pit/pit-sysdiag/cases/ssd_tc/config.json create mode 100644 src/sonic-pit/pit-sysdiag/config/platform/x86_64-alibaba_as14-40d-cl-r0/case_config.json create mode 100644 src/sonic-pit/pit-sysdiag/config/platform/x86_64-alibaba_as14-40d-cl-r0/platform_config.json create mode 100644 src/sonic-pit/pit-sysdiag/src/cpu_tc.py create mode 100644 src/sonic-pit/pit-sysdiag/src/memory_tc.py create mode 100644 src/sonic-pit/pit-sysdiag/src/oob_tc.py create mode 100644 src/sonic-pit/pit-sysdiag/src/rtc_tc.py create mode 100644 src/sonic-pit/pit-sysdiag/src/sensor_tc.py create mode 100644 src/sonic-pit/pit-sysdiag/src/ssd_tc.py create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests/mux-linkmgr.json create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests_config/mux-linkmgr.json create mode 100644 src/sonic-yang-models/yang-models/sonic-mux-linkmgr.yang diff --git a/.azure-pipelines/run-test-scheduler-template.yml b/.azure-pipelines/run-test-scheduler-template.yml index e48dafcedf50..1f8a5a142817 100644 --- a/.azure-pipelines/run-test-scheduler-template.yml +++ b/.azure-pipelines/run-test-scheduler-template.yml @@ -34,10 +34,6 @@ parameters: type: string default: "ceos" -- name: SPECIFIED_PARAMS - type: string - default: "{}" - - name: MGMT_BRANCH type: string default: internal @@ -61,7 +57,7 @@ steps: --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 }}" \ + --mgmt-branch ${{ parameters.MGMT_BRANCH }} --vm-type ${{ parameters.VM_TYPE }} \ --num-asic ${{ parameters.NUM_ASIC }} --azp-access-token ":$(System.AccessToken)" --azp-repo-access-token $(AZP_REPO_ACCESS_TOKEN) \ --azp-pr-id $(System.PullRequest.PullRequestId) TEST_PLAN_ID=`cat new_test_plan_id.txt` diff --git a/README.md b/README.md index c99c9fbe19d0..551e3af5f0d8 100644 --- a/README.md +++ b/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) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f64c710cbe88..6a5af16bc75b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -108,27 +108,26 @@ 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 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 swig3.0 \ + libpython2.7-dev libboost-dev libboost-serialization-dev uuid-dev libzmq5 libzmq3-dev python3-pip \ + cmake libgtest-dev libgmock-dev libyang-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) @@ -224,9 +223,8 @@ stages: 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" + 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_elastictest displayName: "kvmtest-wan by Elastictest" diff --git a/build_debian.sh b/build_debian.sh index 0a014f35063e..9e36299b9c18 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -111,7 +111,7 @@ 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/ @@ -294,7 +294,7 @@ 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 - @@ -309,7 +309,7 @@ then 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' @@ -400,6 +400,7 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in jq \ auditd \ linux-perf \ + resolvconf \ lsof \ sysstat @@ -447,6 +448,14 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in systemd-sysv \ ntp +# Workaround for issue: The udev rule may fail to be executed because the +# daemon-reload command is executed in parallel +# Github issue: https://github.com/systemd/systemd/issues/24668 +# Github PR: https://github.com/systemd/systemd/pull/24673 +# This workaround should be removed after a upstream already contains the fixes +sudo patch $FILESYSTEM_ROOT/lib/systemd/system/systemd-udevd.service \ + files/image_config/systemd/systemd-udevd/fix-udev-rule-may-fail-if-daemon-reload-command-runs.patch + if [[ $TARGET_BOOTLOADER == grub ]]; then if [[ $CONFIGURED_ARCH == amd64 ]]; then GRUB_PKG=grub-pc-bin @@ -651,10 +660,10 @@ then fi # ################# -# 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 .." @@ -663,14 +672,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_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" @@ -782,7 +791,11 @@ sudo rm -f $ONIE_INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS ## Note: -x to skip directories on different file systems, such as /proc sudo du -hsx $FILESYSTEM_ROOT sudo mkdir -p $FILESYSTEM_ROOT/var/lib/docker -sudo cp files/image_config/resolv-config/resolv.conf $FILESYSTEM_ROOT/etc/resolv.conf + +## Clear DNS configuration inherited from the build server +sudo rm -f $FILESYSTEM_ROOT/etc/resolvconf/resolv.conf.d/original +sudo cp files/image_config/resolv-config/resolv.conf.head $FILESYSTEM_ROOT/etc/resolvconf/resolv.conf.d/head + sudo mksquashfs $FILESYSTEM_ROOT $FILESYSTEM_SQUASHFS -comp zstd -b 1M -e boot -e var/lib/docker -e $PLATFORM_DIR # Ensure admin gid is 1000 diff --git a/build_image.sh b/build_image.sh index 4b1dfc9582ee..62d03296020e 100755 --- a/build_image.sh +++ b/build_image.sh @@ -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 + $ONIE_INSTALLER_PAYLOAD $SECURE_UPGRADE_SIGNING_CERT $SECURE_UPGRADE_DEV_SIGNING_KEY } # Generate asic-specific device list diff --git a/device/arista/x86_64-arista_7050_qx32/platform.json b/device/arista/x86_64-arista_7050_qx32/platform.json index 8772ce8b23db..ccce2079a29d 100644 --- a/device/arista/x86_64-arista_7050_qx32/platform.json +++ b/device/arista/x86_64-arista_7050_qx32/platform.json @@ -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" diff --git a/device/arista/x86_64-arista_7050_qx32s/platform.json b/device/arista/x86_64-arista_7050_qx32s/platform.json index 70fbf749b22b..4309fe656947 100644 --- a/device/arista/x86_64-arista_7050_qx32s/platform.json +++ b/device/arista/x86_64-arista_7050_qx32s/platform.json @@ -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": [ { diff --git a/device/dell/x86_64-dell_s6100_c2538-r0/installer.conf b/device/dell/x86_64-dell_s6100_c2538-r0/installer.conf index 87ea9d31bb18..be208a15c691 100644 --- a/device/dell/x86_64-dell_s6100_c2538-r0/installer.conf +++ b/device/dell/x86_64-dell_s6100_c2538-r0/installer.conf @@ -1,3 +1,3 @@ CONSOLE_PORT=0x2f8 CONSOLE_DEV=1 -ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="module_blacklist=gpio_ich,wdat_wdt acpi_no_watchdog=1 nos-config-part=/dev/sda12" +ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="module_blacklist=gpio_ich,wdat_wdt acpi_no_watchdog=1 nos-config-part=/dev/sda12 logs_inram=on" \ No newline at end of file diff --git a/device/mellanox/x86_64-mlnx_msn2700-r0/installer.conf b/device/mellanox/x86_64-mlnx_msn2700-r0/installer.conf index c9c9493a5404..eb12e734bb90 100644 --- a/device/mellanox/x86_64-mlnx_msn2700-r0/installer.conf +++ b/device/mellanox/x86_64-mlnx_msn2700-r0/installer.conf @@ -1 +1 @@ -ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="acpi_enforce_resources=lax acpi=noirq" +ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="acpi_enforce_resources=lax acpi=noirq logs_inram=on" diff --git a/device/nokia/armhf-nokia_ixs7215_52x-r0/installer.conf b/device/nokia/armhf-nokia_ixs7215_52x-r0/installer.conf index b138f294e1ea..36696d270385 100644 --- a/device/nokia/armhf-nokia_ixs7215_52x-r0/installer.conf +++ b/device/nokia/armhf-nokia_ixs7215_52x-r0/installer.conf @@ -1 +1,2 @@ VAR_LOG_SIZE=4096 +ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="logs_inram=on" diff --git a/device/virtual/x86_64-kvm_x86_64-r0/NPU/sai_npu.profile b/device/virtual/x86_64-kvm_x86_64-r0/NPU/sai_npu.profile new file mode 100644 index 000000000000..ffc5d7a21103 --- /dev/null +++ b/device/virtual/x86_64-kvm_x86_64-r0/NPU/sai_npu.profile @@ -0,0 +1,5 @@ +SAI_VS_SWITCH_TYPE=SAI_VS_SWITCH_TYPE_NPU +SAI_VS_HOSTIF_USE_TAP_DEVICE=true +SAI_VS_INTERFACE_LANE_MAP_FILE=/usr/share/sonic/hwsku/lanemap.ini +SAI_VS_CORE_PORT_INDEX_MAP_FILE=/usr/share/sonic/hwsku/coreportindexmap.ini +SAI_VS_INTERFACE_FABRIC_LANE_MAP_FILE=/usr/share/sonic/hwsku/fabriclanemap.ini diff --git a/dockers/docker-database/docker-database-init.sh b/dockers/docker-database/docker-database-init.sh index e2c3fcb727d2..cee131b402d4 100755 --- a/dockers/docker-database/docker-database-init.sh +++ b/dockers/docker-database/docker-database-init.sh @@ -95,4 +95,8 @@ do fi done +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime + exec /usr/local/bin/supervisord diff --git a/dockers/docker-dhcp-relay/start.sh b/dockers/docker-dhcp-relay/start.sh index 87a9e5711f2f..ce0dce10ed3c 100755 --- a/dockers/docker-dhcp-relay/start.sh +++ b/dockers/docker-dhcp-relay/start.sh @@ -10,6 +10,10 @@ then ${CTR_SCRIPT} -f dhcp_relay -o ${RUNTIME_OWNER} -v ${IMAGE_VERSION} fi +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime + # If our supervisor config has entries in the "dhcp-relay" group... if [ $(supervisorctl status | grep -c "^dhcp-relay:") -gt 0 ]; then # Wait for all interfaces to come up and be assigned IPv4 addresses before diff --git a/dockers/docker-eventd/start.sh b/dockers/docker-eventd/start.sh index 60cd6a00aecb..2c357a857436 100755 --- a/dockers/docker-eventd/start.sh +++ b/dockers/docker-eventd/start.sh @@ -4,3 +4,6 @@ if [ "${RUNTIME_OWNER}" == "" ]; then RUNTIME_OWNER="kube" fi +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime diff --git a/dockers/docker-fpm-frr/docker_init.sh b/dockers/docker-fpm-frr/docker_init.sh index d8058e9b5d8d..5e25739b219e 100755 --- a/dockers/docker-fpm-frr/docker_init.sh +++ b/dockers/docker-fpm-frr/docker_init.sh @@ -106,4 +106,8 @@ chmod 0755 /usr/sbin/bgp-unisolate mkdir -p /var/sonic echo "# Config files managed by sonic-config-engine" > /var/sonic/config_status +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime + exec /usr/local/bin/supervisord diff --git a/dockers/docker-iccpd/start.sh b/dockers/docker-iccpd/start.sh index bba5e490c466..cb36ce69cfff 100644 --- a/dockers/docker-iccpd/start.sh +++ b/dockers/docker-iccpd/start.sh @@ -10,3 +10,7 @@ sonic-cfggen -d -t /usr/share/sonic/templates/iccpd.j2 > $ICCPD_CONF_PATH/iccpd. mkdir -p /var/sonic echo "# Config files managed by sonic-config-engine" > /var/sonic/config_status + +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime diff --git a/dockers/docker-lldp/lldpmgrd b/dockers/docker-lldp/lldpmgrd index 6d8540bf2613..2dad02f8794c 100755 --- a/dockers/docker-lldp/lldpmgrd +++ b/dockers/docker-lldp/lldpmgrd @@ -23,6 +23,8 @@ try: from sonic_py_common import daemon_base from swsscommon import swsscommon from sonic_py_common.interface import inband_prefix, recirc_prefix + from sonic_py_common import device_info + except ImportError as err: raise ImportError("%s - required module not found" % str(err)) @@ -357,7 +359,8 @@ def run_cmd(self, cmd): def check_timeout(self, start_time): if time.time() - start_time > PORT_INIT_TIMEOUT: - self.log_error("Port init timeout reached ({} seconds), resuming lldpd...".format(PORT_INIT_TIMEOUT)) + if device_info.is_frontend_port_present_in_host(): + self.log_error("Port init timeout reached ({} seconds), resuming lldpd...".format(PORT_INIT_TIMEOUT)) return True return False diff --git a/dockers/docker-lldp/start.sh b/dockers/docker-lldp/start.sh index 5a489884aea9..51057ae4ec79 100755 --- a/dockers/docker-lldp/start.sh +++ b/dockers/docker-lldp/start.sh @@ -22,3 +22,7 @@ mkdir -p /var/sonic echo "# Config files managed by sonic-config-engine" > /var/sonic/config_status rm -f /var/run/lldpd.socket + +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime diff --git a/dockers/docker-macsec/start.sh b/dockers/docker-macsec/start.sh index 20d602bdd370..bfb684eecadd 100644 --- a/dockers/docker-macsec/start.sh +++ b/dockers/docker-macsec/start.sh @@ -1,2 +1,6 @@ #!/usr/bin/env bash +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime + diff --git a/dockers/docker-macsec/supervisord.conf b/dockers/docker-macsec/supervisord.conf index fb88f17049b2..3ab4f372f101 100644 --- a/dockers/docker-macsec/supervisord.conf +++ b/dockers/docker-macsec/supervisord.conf @@ -28,6 +28,17 @@ stdout_logfile=syslog stderr_logfile=syslog dependent_startup=true +[program:start] +command=/usr/bin/start.sh +priority=2 +autostart=false +autorestart=false +startsecs=0 +stdout_logfile=syslog +stderr_logfile=syslog +dependent_startup=true +dependent_startup_wait_for=rsyslogd:running + [program:macsecmgrd] command=/usr/bin/macsecmgrd priority=2 diff --git a/dockers/docker-mux/docker-init.sh b/dockers/docker-mux/docker-init.sh index bea1686132a1..1679ec5d9f8f 100755 --- a/dockers/docker-mux/docker-init.sh +++ b/dockers/docker-mux/docker-init.sh @@ -3,6 +3,10 @@ # Generate supervisord config file mkdir -p /etc/supervisor/conf.d/ +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime + # The docker container should start this script as PID 1, so now that supervisord is # properly configured, we exec supervisord so that it runs as PID 1 for the # duration of the container's lifetime diff --git a/dockers/docker-nat/start.sh b/dockers/docker-nat/start.sh index 68603d007a51..74912ce01485 100755 --- a/dockers/docker-nat/start.sh +++ b/dockers/docker-nat/start.sh @@ -3,3 +3,7 @@ rm -f /var/run/nat/* mkdir -p /var/warmboot/nat + +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime diff --git a/dockers/docker-orchagent/docker-init.j2 b/dockers/docker-orchagent/docker-init.j2 index d8064b9b88bd..415dce638c1a 100755 --- a/dockers/docker-orchagent/docker-init.j2 +++ b/dockers/docker-orchagent/docker-init.j2 @@ -71,4 +71,8 @@ if [ -f "$IS_SUPERVISOR" ]; then fi fi +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime + exec /usr/local/bin/supervisord diff --git a/dockers/docker-platform-monitor/docker_init.j2 b/dockers/docker-platform-monitor/docker_init.j2 index c93d1790bd00..d8667296efae 100755 --- a/dockers/docker-platform-monitor/docker_init.j2 +++ b/dockers/docker-platform-monitor/docker_init.j2 @@ -110,4 +110,8 @@ else sonic-cfggen -d -a "$confvar" -t $SUPERVISOR_CONF_TEMPLATE > $SUPERVISOR_CONF_FILE fi +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime + exec /usr/local/bin/supervisord diff --git a/dockers/docker-router-advertiser/docker-init.sh b/dockers/docker-router-advertiser/docker-init.sh index 6e1bb5545f82..02c5a8c72be1 100755 --- a/dockers/docker-router-advertiser/docker-init.sh +++ b/dockers/docker-router-advertiser/docker-init.sh @@ -14,4 +14,8 @@ sonic-cfggen $CFGGEN_PARAMS chmod +x /usr/bin/wait_for_link.sh +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime + exec /usr/local/bin/supervisord diff --git a/dockers/docker-sflow/Dockerfile.j2 b/dockers/docker-sflow/Dockerfile.j2 index 7399be80eed2..e8aee5fe6bed 100644 --- a/dockers/docker-sflow/Dockerfile.j2 +++ b/dockers/docker-sflow/Dockerfile.j2 @@ -26,6 +26,7 @@ RUN apt-get clean -y && \ RUN sed -ri '/^DAEMON_ARGS=""/c DAEMON_ARGS="-c /var/log/hsflowd.crash"' /etc/init.d/hsflowd +COPY ["start.sh", "/usr/bin/"] COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor"] diff --git a/dockers/docker-sflow/start.sh b/dockers/docker-sflow/start.sh new file mode 100644 index 000000000000..8996769c4c5e --- /dev/null +++ b/dockers/docker-sflow/start.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime diff --git a/dockers/docker-sflow/supervisord.conf b/dockers/docker-sflow/supervisord.conf index 2c8b006df917..d6cd5092e53d 100644 --- a/dockers/docker-sflow/supervisord.conf +++ b/dockers/docker-sflow/supervisord.conf @@ -28,6 +28,17 @@ stdout_logfile=syslog stderr_logfile=syslog dependent_startup=true +[program:start] +command=/usr/bin/start.sh +priority=2 +autostart=false +autorestart=false +startsecs=0 +stdout_logfile=syslog +stderr_logfile=syslog +dependent_startup=true +dependent_startup_wait_for=rsyslogd:running + [program:sflowmgrd] command=/usr/bin/sflowmgrd priority=2 diff --git a/dockers/docker-snmp/start.sh b/dockers/docker-snmp/start.sh index aefd0bfc3db6..6de6f740b0ad 100755 --- a/dockers/docker-snmp/start.sh +++ b/dockers/docker-snmp/start.sh @@ -27,3 +27,7 @@ sonic-cfggen $SONIC_CFGGEN_ARGS mkdir -p /var/sonic echo "# Config files managed by sonic-config-engine" > /var/sonic/config_status + +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime diff --git a/dockers/docker-sonic-mgmt-framework/start.sh b/dockers/docker-sonic-mgmt-framework/start.sh index d6722a27fc77..2fefbb349cb5 100755 --- a/dockers/docker-sonic-mgmt-framework/start.sh +++ b/dockers/docker-sonic-mgmt-framework/start.sh @@ -2,3 +2,7 @@ mkdir -p /var/sonic echo "# Config files managed by sonic-config-engine" > /var/sonic/config_status + +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime diff --git a/dockers/docker-sonic-mgmt/Dockerfile.j2 b/dockers/docker-sonic-mgmt/Dockerfile.j2 index bcb13b570ccf..5534d3112a41 100755 --- a/dockers/docker-sonic-mgmt/Dockerfile.j2 +++ b/dockers/docker-sonic-mgmt/Dockerfile.j2 @@ -5,13 +5,14 @@ ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y apt-transport-https \ apt-utils \ - azure-cli \ build-essential \ ca-certificates \ cmake \ curl \ default-jre \ git \ + gnupg \ + gnupg-agent \ iproute2 \ iputils-ping \ isc-dhcp-client \ @@ -122,16 +123,18 @@ RUN pip install allure-pytest==2.8.22 \ && pip install scapy==2.4.5 --upgrade --ignore-installed # Install docker-ce-cli -RUN apt-get update \ - && apt-get install -y \ - apt-transport-https \ - ca-certificates \ - gnupg-agent \ - && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - \ +RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - \ && add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \ && apt-get update \ && apt-get install -y docker-ce-cli +# Install Azure CLI, following https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt#option-2-step-by-step-installation-instructions +RUN mkdir -p /etc/apt/keyrings \ + && curl -sLS https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | tee /etc/apt/keyrings/microsoft.gpg > /dev/null \ + && chmod go+r /etc/apt/keyrings/microsoft.gpg \ + && echo "deb [arch=`dpkg --print-architecture` signed-by=/etc/apt/keyrings/microsoft.gpg] https://packages.microsoft.com/repos/azure-cli/ `lsb_release -cs` main" | tee /etc/apt/sources.list.d/azure-cli.list \ + && apt-get update && apt-get install -y azure-cli + ## Copy and install sonic-mgmt docker dependencies COPY \ {% for deb in docker_sonic_mgmt_debs.split(' ') -%} diff --git a/dockers/docker-sonic-p4rt/start.sh b/dockers/docker-sonic-p4rt/start.sh index d6722a27fc77..2fefbb349cb5 100755 --- a/dockers/docker-sonic-p4rt/start.sh +++ b/dockers/docker-sonic-p4rt/start.sh @@ -2,3 +2,7 @@ mkdir -p /var/sonic echo "# Config files managed by sonic-config-engine" > /var/sonic/config_status + +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime diff --git a/dockers/docker-sonic-telemetry/start.sh b/dockers/docker-sonic-telemetry/start.sh index 08f7292f55ba..8d36f740fa38 100755 --- a/dockers/docker-sonic-telemetry/start.sh +++ b/dockers/docker-sonic-telemetry/start.sh @@ -12,3 +12,7 @@ fi mkdir -p /var/sonic echo "# Config files managed by sonic-config-engine" > /var/sonic/config_status + +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime diff --git a/dockers/docker-teamd/start.sh b/dockers/docker-teamd/start.sh index d67bc4e925c8..0b45239355ee 100755 --- a/dockers/docker-teamd/start.sh +++ b/dockers/docker-teamd/start.sh @@ -3,3 +3,7 @@ rm -f /var/run/teamd/* mkdir -p /var/warmboot/teamd + +TZ=$(cat /etc/timezone) +rm -rf /etc/localtime +ln -sf /usr/share/zoneinfo/$TZ /etc/localtime diff --git a/files/build/versions/build/build-sonic-slave-bullseye/versions-deb-bullseye b/files/build/versions/build/build-sonic-slave-bullseye/versions-deb-bullseye index 886bca9f8d23..5142c35ba426 100644 --- a/files/build/versions/build/build-sonic-slave-bullseye/versions-deb-bullseye +++ b/files/build/versions/build/build-sonic-slave-bullseye/versions-deb-bullseye @@ -3,8 +3,8 @@ applibs-dev==1.mlnx.4.5.5142 bfnplatform==1.0.0 isc-dhcp-relay==4.4.1-2.3+deb11u2 kernel-mft-dkms==4.22.1-15 -libhiredis-dev==0.14.0-3~bpo9+1 -libhiredis0.14==0.14.0-3~bpo9+1 +libhiredis-dev==0.14.1-1 +libhiredis0.14==0.14.1-1 libnl-3-dev==3.5.0-1 libnl-cli-3-200==3.5.0-1 libnl-cli-3-dev==3.5.0-1 @@ -19,6 +19,7 @@ libsairedis==1.0.0 libsairedis-dev==1.0.0 libsaithrift-dev==0.9.4 libsaivs==1.0.0 +libsaivs-dev==1.0.0 libswsscommon==1.0.0 libswsscommon-dev==1.0.0 libtac-dev==1.4.1-1 diff --git a/files/build/versions/build/build-sonic-slave-bullseye/versions-deb-bullseye-arm64 b/files/build/versions/build/build-sonic-slave-bullseye/versions-deb-bullseye-arm64 index 90f712515be3..3bad5a5352bd 100644 --- a/files/build/versions/build/build-sonic-slave-bullseye/versions-deb-bullseye-arm64 +++ b/files/build/versions/build/build-sonic-slave-bullseye/versions-deb-bullseye-arm64 @@ -1,3 +1 @@ -libnl-3-200==3.5.0-1 -libnl-route-3-200==3.5.0-1 linux-headers-5.10.0-18-2-arm64==5.10.140-1 diff --git a/files/build/versions/build/build-sonic-slave-bullseye/versions-deb-bullseye-armhf b/files/build/versions/build/build-sonic-slave-bullseye/versions-deb-bullseye-armhf index b6df7939876f..ea31993a2e6b 100644 --- a/files/build/versions/build/build-sonic-slave-bullseye/versions-deb-bullseye-armhf +++ b/files/build/versions/build/build-sonic-slave-bullseye/versions-deb-bullseye-armhf @@ -1,4 +1,3 @@ libnl-3-200==3.5.0-1 libnl-route-3-200==3.5.0-1 linux-headers-5.10.0-18-2-armmp==5.10.140-1 -mrvllibsai==1.11.0-1 diff --git a/files/build/versions/build/build-sonic-slave-bullseye/versions-py3 b/files/build/versions/build/build-sonic-slave-bullseye/versions-py3 index e22b015f7c34..c7bad22e6156 100644 --- a/files/build/versions/build/build-sonic-slave-bullseye/versions-py3 +++ b/files/build/versions/build/build-sonic-slave-bullseye/versions-py3 @@ -6,12 +6,12 @@ colorful==0.5.5 docker==6.1.3 docker-image-py==0.1.12 enlighten==1.11.2 -filelock==3.12.1 +filelock==3.12.2 ijson==2.6.1 ipaddress==1.0.23 jsondiff==2.0.0 -jsonpatch==1.32 -jsonpointer==2.3 +jsonpatch==1.33 +jsonpointer==2.4 jsonschema==2.6.0 natsort==6.2.1 netaddr==0.8.0 @@ -21,7 +21,7 @@ pddf-platform==1.0 prefixed==0.7.0 prettyprinter==0.18.0 psutil==5.9.5 -pycairo==1.23.0 +pycairo==1.24.0 pycparser==2.21 pynacl==1.5.0 pyroute2==0.5.19 @@ -32,6 +32,6 @@ tabulate==0.8.2 thrift==0.14.1 toposort==1.6 wcwidth==0.2.6 -websocket-client==1.5.3 +websocket-client==1.6.1 www-authenticate==0.9.2 xmltodict==0.12.0 diff --git a/files/build/versions/build/build-sonic-slave-bullseye/versions-py3-all-arm64 b/files/build/versions/build/build-sonic-slave-bullseye/versions-py3-all-arm64 deleted file mode 100644 index 46df813bf748..000000000000 --- a/files/build/versions/build/build-sonic-slave-bullseye/versions-py3-all-arm64 +++ /dev/null @@ -1,5 +0,0 @@ -bcrypt==3.2.2 -bitarray==1.5.3 -click==7.0 -requests==2.31.0 -zipp==1.2.0 diff --git a/files/build/versions/build/build-sonic-slave-buster/versions-deb-buster-arm64 b/files/build/versions/build/build-sonic-slave-buster/versions-deb-buster-arm64 index 2f592dd8dbbc..7d6eef0555e9 100644 --- a/files/build/versions/build/build-sonic-slave-buster/versions-deb-buster-arm64 +++ b/files/build/versions/build/build-sonic-slave-buster/versions-deb-buster-arm64 @@ -1,5 +1,5 @@ -libhiredis-dev==0.14.0-3~bpo9+1 -libhiredis0.14==0.14.0-3~bpo9+1 +libhiredis-dev==0.14.1-1 +libhiredis0.14==0.14.1-1 libnl-3-200==3.5.0-1 libnl-3-dev==3.5.0-1 libnl-route-3-200==3.5.0-1 diff --git a/files/build/versions/build/build-sonic-slave-buster/versions-deb-buster-armhf b/files/build/versions/build/build-sonic-slave-buster/versions-deb-buster-armhf index 2f592dd8dbbc..7d6eef0555e9 100644 --- a/files/build/versions/build/build-sonic-slave-buster/versions-deb-buster-armhf +++ b/files/build/versions/build/build-sonic-slave-buster/versions-deb-buster-armhf @@ -1,5 +1,5 @@ -libhiredis-dev==0.14.0-3~bpo9+1 -libhiredis0.14==0.14.0-3~bpo9+1 +libhiredis-dev==0.14.1-1 +libhiredis0.14==0.14.1-1 libnl-3-200==3.5.0-1 libnl-3-dev==3.5.0-1 libnl-route-3-200==3.5.0-1 diff --git a/files/build/versions/default/versions-docker b/files/build/versions/default/versions-docker index 8d2c6413a76c..9ed0e3d08b1b 100644 --- a/files/build/versions/default/versions-docker +++ b/files/build/versions/default/versions-docker @@ -1,12 +1,12 @@ -amd64:amd64/debian:bullseye==sha256:1bf0e24813ee8306c3fba1fe074793eb91c15ee580b61fff7f3f41662bc0031d -amd64:amd64/debian:buster==sha256:a067a9e8b39d5f19659b3bc9fd4348f6319afabd0d6ba1fe3b43df108926ea92 -amd64:debian:bullseye==sha256:432f545c6ba13b79e2681f4cc4858788b0ab099fc1cca799cc0fae4687c69070 -amd64:debian:buster==sha256:322859539526a04978dee1a2575b515295f6706f17d280f877a634299a7c1414 -arm64:arm64v8/debian:bullseye==sha256:0d1881fd981442bd6721e0e4ff40eb0ba705475c3a8469482ccee9029af56ebf -arm64:arm64v8/debian:buster==sha256:62a3eb2f5ace2f8415171855a84375616cb3cdb60b799d1811c3fda923b8dfbc -arm64:debian:bullseye==sha256:432f545c6ba13b79e2681f4cc4858788b0ab099fc1cca799cc0fae4687c69070 -arm64:debian:buster==sha256:322859539526a04978dee1a2575b515295f6706f17d280f877a634299a7c1414 -armhf:arm32v7/debian:bullseye==sha256:16aa677e45937a8c9f2e5a932ff1a611bc85b6416e47ab66532e05af2c08e066 -armhf:arm32v7/debian:buster==sha256:5340ee96c308b59f4590ec929adeeaf61ffe5a0758adcba09d0595a6619c3462 -armhf:debian:bullseye==sha256:432f545c6ba13b79e2681f4cc4858788b0ab099fc1cca799cc0fae4687c69070 -armhf:debian:buster==sha256:322859539526a04978dee1a2575b515295f6706f17d280f877a634299a7c1414 +amd64:amd64/debian:bullseye==sha256:1e8185ca8683c04e6c23cc7bb21b564d54faeb7e20852a6068c85cbdd7bac531 +amd64:amd64/debian:buster==sha256:108052254277ea53cd807d2782ed3cbe4b9242256af5c7519c6e5692ae2b5d97 +amd64:debian:bullseye==sha256:1e5f2d70c9441c971607727f56d0776fb9eecf23cd37b595b26db7a974b2301d +amd64:debian:buster==sha256:28842e4895d36e67c49015c0b41089fa3248e865c76994b19f706ab91e800b95 +arm64:arm64v8/debian:bullseye==sha256:0f56dd5a1687619972eeb539b273b4f3ec04431db69d4b569c2ce6ef48478538 +arm64:arm64v8/debian:buster==sha256:25bb297f257d6422b3aa44891469abc07e63096ea721da57002f0297ddcc599c +arm64:debian:bullseye==sha256:1e5f2d70c9441c971607727f56d0776fb9eecf23cd37b595b26db7a974b2301d +arm64:debian:buster==sha256:28842e4895d36e67c49015c0b41089fa3248e865c76994b19f706ab91e800b95 +armhf:arm32v7/debian:bullseye==sha256:93effc32fdca33aebfcef7225219dde573daebd3e1ddd09ab21e635887271096 +armhf:arm32v7/debian:buster==sha256:626ee3ce3a78f7a900fc5a99bfdbb44297f1c943a4fe261de4ec3fb4a23266bd +armhf:debian:bullseye==sha256:1e5f2d70c9441c971607727f56d0776fb9eecf23cd37b595b26db7a974b2301d +armhf:debian:buster==sha256:28842e4895d36e67c49015c0b41089fa3248e865c76994b19f706ab91e800b95 diff --git a/files/build/versions/default/versions-git b/files/build/versions/default/versions-git index 9b9b9452af5c..bf87b6ba4461 100644 --- a/files/build/versions/default/versions-git +++ b/files/build/versions/default/versions-git @@ -1,24 +1,24 @@ -https://chromium.googlesource.com/chromium/tools/depot_tools.git==6eaeb04ac1fb53c19cdb18f666a4c054da037f08 +https://chromium.googlesource.com/chromium/tools/depot_tools.git==90fed308660fd53ac4247b7242f280b01731b1c7 https://github.com/aristanetworks/swi-tools.git==b5f087e4774168bf536360d43c9c509c8f14ad9f https://github.com/CESNET/libyang.git==ea94c8b9f513f8a6ddc6ce1540fa41eaf4c8922a https://github.com/daveolson53/audisp-tacplus.git==559c9f22edd4f2dea0ecedffb3ad9502b12a75b6 https://github.com/daveolson53/libnss-tacplus.git==19008ab68d9d504aa58eb34d5f564755a1613b8b https://github.com/dyninc/OpenBFDD.git==e35f43ad8d2b3f084e96a84c392528a90d05a287 -https://github.com/flashrom/flashrom.git==3239be535d16b10881513c0e97500cbd110426ab -https://github.com/FreeRADIUS/freeradius-server.git==3cedb9b2588b334d37d1eae957eb811b5de45412 +https://github.com/flashrom/flashrom.git==1ee04cd5ac8bb636182d9d7c259110638b83c8b1 +https://github.com/FreeRADIUS/freeradius-server.git==14ddc663bc17ccdc6a7c860cfb188c58fb5536d1 https://github.com/FreeRADIUS/pam_radius.git==8d373539bb9f13b0abfe8bcae0095a930a00fad0 https://github.com/jeroennijhof/pam_tacplus.git==4284d9016e64def2bb81d5f50f96dc3b59bfdc39 -https://github.com/jpirko/libteam.git==61e27812c1074a865d7e1a778c0ce442837c28d7 -https://github.com/lguohan/gnxi.git==f2b11e45b16ab13485ae14933f30c18ee6336499 -https://github.com/Marvell-switching/mrvl-prestera.git==9dbae444204a2c27b33be698ce497d55926b8893 +https://github.com/jpirko/libteam.git==7cb5de8b01be132bd4150eff460bfd83296414b6 +https://github.com/lguohan/gnxi.git==b85e4ab565df4472fdcfcded2a53e6bf57aa493f +https://github.com/Marvell-switching/mrvl-prestera.git==179c08b0544db0b3a95a843e31266e00a68fb4b0 https://github.com/Mellanox/libpsample.git==62bb27d9a49424e45191eee81df7ce0d8c74e774 -https://github.com/p4lang/ptf.git==b33f54b9a97f834be1c8522217d445b6b1cad2df +https://github.com/p4lang/ptf.git==d2e2d8ad005a451ad11f9d21af50079a0552921a https://github.com/p4lang/scapy-vxlan.git==85ffe83da156568ee47a0750f638227e6e1d7479 -https://github.com/sflow/host-sflow==b9b61bc037aed4d3d0fac6b0b4d88bc78b7b485d +https://github.com/sflow/host-sflow==4dc68a95fa57758119d76e42965b32493ffd7094 https://github.com/sflow/sflowtool==4ce1223bb4c2cd0cbb1dd688dc0914561fcbb6c4 https://github.com/thom311/libnl==cbafad9ddf24caef5230fef715d34f0539603be0 https://salsa.debian.org/debian/libteam.git==48142125234a665ad5367b724af36a58fb484d3d -https://salsa.debian.org/kernel-team/ethtool/==532e36ef02837c78df47f8d561aa04b5cfed438f +https://salsa.debian.org/kernel-team/ethtool/==581ffbde5b349852a56fa581f7b512a755c33e26 https://salsa.debian.org/kernel-team/initramfs-tools.git==193dfbb7929e518976f89f6c8dd9201982e56f80 https://salsa.debian.org/sk-guest/monit.git==c9da7ebb1f35dfba17b50b5969a6e75e29cbec0d -https://salsa.debian.org/ssh-team/openssh.git==4cb9ac54235e8f90a590a976e1404480fb521930 +https://salsa.debian.org/ssh-team/openssh.git==74d15e80b8730335a9b13469ca6cafe4c1c8e485 diff --git a/files/build/versions/default/versions-mirror b/files/build/versions/default/versions-mirror index 903c0dffb4c0..81b26f1d331e 100644 --- a/files/build/versions/default/versions-mirror +++ b/files/build/versions/default/versions-mirror @@ -1,15 +1,15 @@ deb.nodesource.com_node%5f14.x_dists_bullseye==2023-02-17T00:35:28Z deb.nodesource.com_node%5f14.x_dists_buster==2023-02-17T00:35:28Z -debian==20230611T000219Z -debian-security==20230611T000221Z +debian==20230625T000121Z +debian-security==20230625T000122Z download.docker.com_linux_debian_dists_bullseye==2023-06-09T17:17:20Z download.docker.com_linux_debian_dists_buster==2023-05-26T07:49:38Z packages.microsoft.com_repos_sonic-dev_dists_jessie==2022-10-31T19:34:29Z -packages.trafficmanager.net_snapshot_debian-security_20230611T000221Z_dists_bullseye-security==2023-06-10T19:38:13Z -packages.trafficmanager.net_snapshot_debian-security_20230611T000221Z_dists_buster_updates==2023-06-10T19:38:13Z -packages.trafficmanager.net_snapshot_debian_20230611T000219Z_dists_bullseye==2023-06-10T08:52:21Z -packages.trafficmanager.net_snapshot_debian_20230611T000219Z_dists_bullseye-backports==2023-06-10T11:24:09Z -packages.trafficmanager.net_snapshot_debian_20230611T000219Z_dists_bullseye-updates==2023-06-10T11:24:09Z -packages.trafficmanager.net_snapshot_debian_20230611T000219Z_dists_buster==2023-06-10T08:53:33Z -packages.trafficmanager.net_snapshot_debian_20230611T000219Z_dists_buster-backports==2023-06-10T11:24:09Z -packages.trafficmanager.net_snapshot_debian_20230611T000219Z_dists_buster-updates==2023-06-10T08:55:10Z +packages.trafficmanager.net_snapshot_debian-security_20230625T000122Z_dists_bullseye-security==2023-06-22T22:43:03Z +packages.trafficmanager.net_snapshot_debian-security_20230625T000122Z_dists_buster_updates==2023-06-22T22:43:03Z +packages.trafficmanager.net_snapshot_debian_20230625T000121Z_dists_bullseye==2023-06-10T08:52:21Z +packages.trafficmanager.net_snapshot_debian_20230625T000121Z_dists_bullseye-backports==2023-06-24T20:43:09Z +packages.trafficmanager.net_snapshot_debian_20230625T000121Z_dists_bullseye-updates==2023-06-24T20:43:09Z +packages.trafficmanager.net_snapshot_debian_20230625T000121Z_dists_buster==2023-06-10T08:53:33Z +packages.trafficmanager.net_snapshot_debian_20230625T000121Z_dists_buster-backports==2023-06-24T20:43:09Z +packages.trafficmanager.net_snapshot_debian_20230625T000121Z_dists_buster-updates==2023-06-10T08:55:10Z diff --git a/files/build/versions/default/versions-web b/files/build/versions/default/versions-web index 3081ec12689e..0ead0b68cbae 100644 --- a/files/build/versions/default/versions-web +++ b/files/build/versions/default/versions-web @@ -15,9 +15,9 @@ http://deb.debian.org/debian/pool/main/l/lm-sensors/lm-sensors_3.6.0.orig.tar.gz http://deb.debian.org/debian/pool/main/n/ntp/ntp_4.2.8p15+dfsg-1.debian.tar.xz==896c9b6679f379d8967b012a0cc792c2 http://deb.debian.org/debian/pool/main/n/ntp/ntp_4.2.8p15+dfsg.orig.tar.xz==c1c557036197188a22ec285fa53149d8 http://ftp.us.debian.org/debian/pool/main/s/scapy/python-scapy_2.4.0-2_all.deb==d87d7b22de51937b1e706e4751b86251 -http://http.debian.net/debian/pool/main/h/hiredis/hiredis_0.14.0-3~bpo9+1.debian.tar.xz==ef340aedc6fd42c549cd503bffb498b2 -http://http.debian.net/debian/pool/main/h/hiredis/hiredis_0.14.0-3~bpo9+1.dsc==be4ce11ef67268e59e4b6be587327c40 -http://http.debian.net/debian/pool/main/h/hiredis/hiredis_0.14.0.orig.tar.gz==6d565680a4af0d2e261abbc3e3431b2b +http://http.debian.net/debian/pool/main/h/hiredis/hiredis_0.14.1-1.debian.tar.xz==d0ef92c6f301ac5023f7953cf7816ff0 +http://http.debian.net/debian/pool/main/h/hiredis/hiredis_0.14.1-1.dsc==ef9e33d036c6dbb74a4ed12fefe2de8a +http://http.debian.net/debian/pool/main/h/hiredis/hiredis_0.14.1.orig.tar.gz==3e1c541f9df28becb82a611e63e3e939 http://www.mellanox.com/downloads/MFT/mft-4.22.1-15-x86_64-deb.tgz==fb58cd1a7dafef062a7c3ec8a398b5fd https://archive.apache.org/dist/thrift/0.14.1/thrift-0.14.1.tar.gz==c64434548438df2cb1e53fb27c600e85 https://bootstrap.pypa.io/pip/2.7/get-pip.py==60e8267eb1b7bc71dc4843eb7bd294d3 @@ -69,7 +69,7 @@ https://github.com/nanomsg/nanomsg/archive/1.0.0.tar.gz==6f56ef28c93cee644e8c4aa https://launchpad.net/debian/+archive/primary/+sourcefiles/bash/5.1-2/bash_5.1-2.debian.tar.xz==9d0cbd5f463f461c840c95f62a64d61b https://launchpad.net/debian/+archive/primary/+sourcefiles/bash/5.1-2/bash_5.1-2.dsc==be44c5a9fc12fb567a486f54b842dd9e https://launchpad.net/debian/+archive/primary/+sourcefiles/bash/5.1-2/bash_5.1.orig.tar.xz==6ddb13b6111f601db08fc7c72afa0263 -https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py==628956b660575965429cec84b1778816 +https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py==963c345c75fe5c5bdedc05ed98a5fd1f https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.5/swagger-codegen-cli-2.4.5.jar==219f1453ff22482d9e080effbfa7fa81 https://sonicstorage.blob.core.windows.net/debian-security/pool/updates/main/l/linux/linux_5.10.140-1.debian.tar.xz==9813a002af43da3a5be05f3d31e85328 https://sonicstorage.blob.core.windows.net/debian-security/pool/updates/main/l/linux/linux_5.10.140-1.dsc==84ab224b073f97978802d9f998248fcc @@ -106,42 +106,42 @@ https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.1/amd64/golang https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.1/amd64/golang-1.15-src_1.15.15-1~deb11u4%2Bfips_amd64.deb==1c920937aa49b602a1bfec3c49747131 https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.1/arm64/golang-1.15-go_1.15.15-1~deb11u4%2Bfips_arm64.deb==0b70c104b907db13ff2fe5d52b3d0008 https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.1/arm64/golang-1.15-src_1.15.15-1~deb11u4%2Bfips_arm64.deb==1d06900f03424fa5ce34a782605983fe -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/golang-1.15-doc_1.15.15-1~deb11u4+fips_all.deb==72ead09139135d4ecd91b76c89128567 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/golang-1.15-go_1.15.15-1~deb11u4+fips_amd64.deb==145e103357a915cc759cc93de602b631 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/golang-1.15-src_1.15.15-1~deb11u4+fips_amd64.deb==1c1a46d5599be92777702643c37d5751 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/golang-1.15_1.15.15-1~deb11u4+fips_all.deb==847bc1fc5ce9c8ebae5176947ab34d30 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/libk5crypto3_1.18.3-6+deb11u1+fips_amd64.deb==5e8de29d5f6844f71f15cbf0c3993f1c -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/libpython3.9-minimal_3.9.2-1+fips_amd64.deb==411d2092cd614dd187bdc0ec0bb9598f -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/libpython3.9-stdlib_3.9.2-1+fips_amd64.deb==521dd7170cb9519fac3aa492ff3dd1ea -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/libpython3.9_3.9.2-1+fips_amd64.deb==c405132eacaf059c7c903f853d48be7e -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/libssl-dev_1.1.1n-0+deb11u4+fips_amd64.deb==a1833ecb83cddb66ce30bf4b28e48856 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/libssl-doc_1.1.1n-0+deb11u4+fips_all.deb==52925c4fd9932ffe78798dd55bdb077e -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/libssl1.1_1.1.1n-0+deb11u4+fips_amd64.deb==65000162eac58235fbf1acab52047ca9 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/openssh-client_8.4p1-5+deb11u1+fips_amd64.deb==bee0e4f52cf8dedd6dac78be18b02400 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/openssh-server_8.4p1-5+deb11u1+fips_amd64.deb==8ac4a8397c8e62d554718f1c8c6f5896 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/openssh-sftp-server_8.4p1-5+deb11u1+fips_amd64.deb==94740a01d5d025df8d99d3e5b7a0b0e9 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/openssl_1.1.1n-0+deb11u4+fips_amd64.deb==2f3040c1dc6230c5dd09994eeaace905 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/python3.9-minimal_3.9.2-1+fips_amd64.deb==27559fec65ac317419222fd19bcf5150 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/python3.9_3.9.2-1+fips_amd64.deb==30be224443931a2a3428aa270b87384a -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/amd64/symcrypt-openssl_0.7_amd64.deb==6d909de22cf4f44879b27a4fc2697cac -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/golang-1.15-doc_1.15.15-1~deb11u4+fips_all.deb==72ead09139135d4ecd91b76c89128567 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/golang-1.15-go_1.15.15-1~deb11u4+fips_arm64.deb==b59f315800ca2ec31de79136dfb8979d -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/golang-1.15-src_1.15.15-1~deb11u4+fips_arm64.deb==0038c68ed1e3adb1b43434af81cff678 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/golang-1.15_1.15.15-1~deb11u4+fips_all.deb==847bc1fc5ce9c8ebae5176947ab34d30 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/libk5crypto3_1.18.3-6+deb11u1+fips_arm64.deb==0bb2a2d23f73e882d91b2e256aad08f6 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/libpython3.9-minimal_3.9.2-1+fips_arm64.deb==870a96b0d9d7fe753d495ad6574e4c03 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/libpython3.9-stdlib_3.9.2-1+fips_arm64.deb==eb8bb0d3806adbc987ec300e221a3baf -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/libpython3.9_3.9.2-1+fips_arm64.deb==edae5c269e2c401873e7cff3d4f93a7a -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/libssl-dev_1.1.1n-0+deb11u4+fips_arm64.deb==56aed9e3cef3692a36129598bd9871d6 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/libssl-doc_1.1.1n-0+deb11u4+fips_all.deb==52925c4fd9932ffe78798dd55bdb077e -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/libssl1.1_1.1.1n-0+deb11u4+fips_arm64.deb==5c760faf80f6f4efc71e255b2e0774fc -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/openssh-client_8.4p1-5+deb11u1+fips_arm64.deb==ce762b1730871a72bc423c97444342ad -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/openssh-server_8.4p1-5+deb11u1+fips_arm64.deb==c943526cf7317d4c0d05005db47b6992 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/openssh-sftp-server_8.4p1-5+deb11u1+fips_arm64.deb==4e360e97ed3f0eaead7a8ef79fa4f3d7 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/openssl_1.1.1n-0+deb11u4+fips_arm64.deb==68e32a58e12f960ce163decc0f756906 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/python3.9-minimal_3.9.2-1+fips_arm64.deb==add04c26a72788957951d8581b5c8e2a -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/python3.9_3.9.2-1+fips_arm64.deb==4d6307dabcd3060235d6188cfa0346b8 -https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.7/arm64/symcrypt-openssl_0.7_arm64.deb==f25f73823a0f22805b8e0be43bef190f +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/golang-1.15-doc_1.15.15-1~deb11u4+fips_all.deb==72ead09139135d4ecd91b76c89128567 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/golang-1.15-go_1.15.15-1~deb11u4+fips_amd64.deb==145e103357a915cc759cc93de602b631 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/golang-1.15-src_1.15.15-1~deb11u4+fips_amd64.deb==1c1a46d5599be92777702643c37d5751 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/golang-1.15_1.15.15-1~deb11u4+fips_all.deb==847bc1fc5ce9c8ebae5176947ab34d30 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/libk5crypto3_1.18.3-6+deb11u1+fips_amd64.deb==5e8de29d5f6844f71f15cbf0c3993f1c +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/libpython3.9-minimal_3.9.2-1+fips_amd64.deb==71b75222c8bcd5ede55693a9223a3246 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/libpython3.9-stdlib_3.9.2-1+fips_amd64.deb==565cce5ca6e6a31a53b7a9e2faa4b7d9 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/libpython3.9_3.9.2-1+fips_amd64.deb==c405132eacaf059c7c903f853d48be7e +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/libssl-dev_1.1.1n-0+deb11u4+fips_amd64.deb==a1833ecb83cddb66ce30bf4b28e48856 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/libssl-doc_1.1.1n-0+deb11u4+fips_all.deb==52925c4fd9932ffe78798dd55bdb077e +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/libssl1.1_1.1.1n-0+deb11u4+fips_amd64.deb==65000162eac58235fbf1acab52047ca9 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/openssh-client_8.4p1-5+deb11u1+fips_amd64.deb==bee0e4f52cf8dedd6dac78be18b02400 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/openssh-server_8.4p1-5+deb11u1+fips_amd64.deb==8ac4a8397c8e62d554718f1c8c6f5896 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/openssh-sftp-server_8.4p1-5+deb11u1+fips_amd64.deb==94740a01d5d025df8d99d3e5b7a0b0e9 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/openssl_1.1.1n-0+deb11u4+fips_amd64.deb==2f3040c1dc6230c5dd09994eeaace905 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/python3.9-minimal_3.9.2-1+fips_amd64.deb==66511f65e2873cda108e6bb3911abbf5 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/python3.9_3.9.2-1+fips_amd64.deb==30be224443931a2a3428aa270b87384a +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/amd64/symcrypt-openssl_0.8_amd64.deb==0b838c07c4625a593cd914e414b656ea +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/golang-1.15-doc_1.15.15-1~deb11u4+fips_all.deb==72ead09139135d4ecd91b76c89128567 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/golang-1.15-go_1.15.15-1~deb11u4+fips_arm64.deb==b59f315800ca2ec31de79136dfb8979d +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/golang-1.15-src_1.15.15-1~deb11u4+fips_arm64.deb==0038c68ed1e3adb1b43434af81cff678 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/golang-1.15_1.15.15-1~deb11u4+fips_all.deb==847bc1fc5ce9c8ebae5176947ab34d30 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/libk5crypto3_1.18.3-6+deb11u1+fips_arm64.deb==0bb2a2d23f73e882d91b2e256aad08f6 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/libpython3.9-minimal_3.9.2-1+fips_arm64.deb==870a96b0d9d7fe753d495ad6574e4c03 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/libpython3.9-stdlib_3.9.2-1+fips_arm64.deb==df2b4d1672a297f855d0e85b382629cc +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/libpython3.9_3.9.2-1+fips_arm64.deb==edae5c269e2c401873e7cff3d4f93a7a +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/libssl-dev_1.1.1n-0+deb11u4+fips_arm64.deb==56aed9e3cef3692a36129598bd9871d6 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/libssl-doc_1.1.1n-0+deb11u4+fips_all.deb==52925c4fd9932ffe78798dd55bdb077e +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/libssl1.1_1.1.1n-0+deb11u4+fips_arm64.deb==5c760faf80f6f4efc71e255b2e0774fc +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/openssh-client_8.4p1-5+deb11u1+fips_arm64.deb==ce762b1730871a72bc423c97444342ad +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/openssh-server_8.4p1-5+deb11u1+fips_arm64.deb==c943526cf7317d4c0d05005db47b6992 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/openssh-sftp-server_8.4p1-5+deb11u1+fips_arm64.deb==4e360e97ed3f0eaead7a8ef79fa4f3d7 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/openssl_1.1.1n-0+deb11u4+fips_arm64.deb==68e32a58e12f960ce163decc0f756906 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/python3.9-minimal_3.9.2-1+fips_arm64.deb==71935b5d5780014e0048f0e9d84acdb9 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/python3.9_3.9.2-1+fips_arm64.deb==4d6307dabcd3060235d6188cfa0346b8 +https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.8/arm64/symcrypt-openssl_0.8_arm64.deb==0ab2a6b1c621508eb5b39da92fd69060 https://sonicstorage.blob.core.windows.net/public/sai/bcmpai/REL_3.8/3.8/libsaibroncos_3.8_amd64.deb==f7c3f0ed8c97c2572e3c2e59faaae4a8 https://sonicstorage.blob.core.windows.net/public/sai/bcmsai/REL_7.0_SAI_1.11/7.1.111.1/libsaibcm_dnx_7.1.111.1_amd64.deb==458f404279c3f30ec71de6bad7373323 https://sonicstorage.blob.core.windows.net/public/sai/sai-broadcom/SAI_8.4.0_GA/8.4.0.2/xgs/libsaibcm-dev_8.4.0.2_amd64.deb==50bc5321ebdf6c3f065ba53509a742e4 diff --git a/files/build/versions/dockers/docker-base-buster/versions-deb-buster b/files/build/versions/dockers/docker-base-buster/versions-deb-buster index f7aaa91c60a0..73cdf27b1c74 100644 --- a/files/build/versions/dockers/docker-base-buster/versions-deb-buster +++ b/files/build/versions/dockers/docker-base-buster/versions-deb-buster @@ -8,7 +8,7 @@ libdaemon0==0.14-7 libdbus-1-3==1.12.24-0+deb10u1 libestr0==0.1.10-2.1 libexpat1==2.2.6-2+deb10u6 -libfastjson4==0.99.8-2 +libfastjson4==0.99.8-2+deb10u1 libgdbm-compat4==1.18.1-4 libgdbm6==1.18.1-4 libgssapi-krb5-2==1.17-3+deb10u5 @@ -64,6 +64,6 @@ readline-common==7.0-5 redis-tools==5:6.0.6-1~bpo10+1 rsyslog==8.1901.0-1+deb10u2 socat==1.7.4.1-3 -vim-common==2:8.1.0875-5+deb10u4 -vim-tiny==2:8.1.0875-5+deb10u4 -xxd==2:8.1.0875-5+deb10u4 +vim-common==2:8.1.0875-5+deb10u5 +vim-tiny==2:8.1.0875-5+deb10u5 +xxd==2:8.1.0875-5+deb10u5 diff --git a/files/build/versions/dockers/docker-config-engine-bullseye/versions-deb-bullseye b/files/build/versions/dockers/docker-config-engine-bullseye/versions-deb-bullseye index 39e3e32b2dd2..d686852ba6d6 100644 --- a/files/build/versions/dockers/docker-config-engine-bullseye/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-config-engine-bullseye/versions-deb-bullseye @@ -1,7 +1,7 @@ apt-utils==2.2.4 dpkg-dev==1.20.12 libboost-serialization1.74.0==1.74.0-9 -libhiredis0.14==0.14.0-3~bpo9+1 +libhiredis0.14==0.14.1-1 libjs-jquery==3.5.1+dfsg+~3.5.5-7 libnl-3-200==3.5.0-1 libnl-cli-3-200==3.5.0-1 diff --git a/files/build/versions/dockers/docker-config-engine-buster/versions-deb-buster b/files/build/versions/dockers/docker-config-engine-buster/versions-deb-buster index 47ee62bb348e..67de9912f7b7 100644 --- a/files/build/versions/dockers/docker-config-engine-buster/versions-deb-buster +++ b/files/build/versions/dockers/docker-config-engine-buster/versions-deb-buster @@ -3,7 +3,7 @@ bzip2==1.0.6-9.2~deb10u2 dpkg-dev==1.19.8 libapt-inst2.0==1.8.2.3 libboost-serialization1.71.0==1.71.0-6~bpo10+1 -libhiredis0.14==0.14.0-3~bpo9+1 +libhiredis0.14==0.14.1-1 libnl-3-200==3.5.0-1 libnl-cli-3-200==3.5.0-1 libnl-genl-3-200==3.5.0-1 diff --git a/files/build/versions/dockers/docker-config-engine-buster/versions-py3 b/files/build/versions/dockers/docker-config-engine-buster/versions-py3 index 34bf99a18dc4..70d81e6f2d3f 100644 --- a/files/build/versions/dockers/docker-config-engine-buster/versions-py3 +++ b/files/build/versions/dockers/docker-config-engine-buster/versions-py3 @@ -1,7 +1,7 @@ async-timeout==4.0.2 bitarray==1.5.3 ijson==2.6.1 -importlib-metadata==6.6.0 +importlib-metadata==6.7.0 ipaddress==1.0.23 jsondiff==2.0.0 lxml==4.9.1 diff --git a/files/build/versions/dockers/docker-database/versions-deb-bullseye b/files/build/versions/dockers/docker-database/versions-deb-bullseye index 8493b0e6aa5a..76ad9de84898 100644 --- a/files/build/versions/dockers/docker-database/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-database/versions-deb-bullseye @@ -10,7 +10,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libmpfr6==4.1.0-3 diff --git a/files/build/versions/dockers/docker-dhcp-relay/versions-deb-bullseye b/files/build/versions/dockers/docker-dhcp-relay/versions-deb-bullseye index dc43b1434163..76db9967cbe8 100644 --- a/files/build/versions/dockers/docker-dhcp-relay/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-dhcp-relay/versions-deb-bullseye @@ -15,7 +15,7 @@ libexplain51==1.4.D001-11+deb11u1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libirs-export161==1:9.11.19+dfsg-2.1 diff --git a/files/build/versions/dockers/docker-eventd/versions-deb-bullseye b/files/build/versions/dockers/docker-eventd/versions-deb-bullseye index 36188a31e892..20265004b97a 100644 --- a/files/build/versions/dockers/docker-eventd/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-eventd/versions-deb-bullseye @@ -10,7 +10,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libmpfr6==4.1.0-3 diff --git a/files/build/versions/dockers/docker-fpm-frr/versions-deb-bullseye b/files/build/versions/dockers/docker-fpm-frr/versions-deb-bullseye index 06b58d24b24c..8e9306966088 100644 --- a/files/build/versions/dockers/docker-fpm-frr/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-fpm-frr/versions-deb-bullseye @@ -16,7 +16,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libjson-c5==0.15-2 diff --git a/files/build/versions/dockers/docker-gbsyncd-broncos/versions-deb-bullseye b/files/build/versions/dockers/docker-gbsyncd-broncos/versions-deb-bullseye index c3d7b718ba51..d3cbca6be966 100644 --- a/files/build/versions/dockers/docker-gbsyncd-broncos/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-gbsyncd-broncos/versions-deb-bullseye @@ -13,7 +13,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libmpfr6==4.1.0-3 diff --git a/files/build/versions/dockers/docker-gbsyncd-credo/versions-deb-bullseye b/files/build/versions/dockers/docker-gbsyncd-credo/versions-deb-bullseye index 45618871230d..67ade6f8b5a3 100644 --- a/files/build/versions/dockers/docker-gbsyncd-credo/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-gbsyncd-credo/versions-deb-bullseye @@ -10,7 +10,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libmpfr6==4.1.0-3 diff --git a/files/build/versions/dockers/docker-gbsyncd-vs/versions-deb-bullseye b/files/build/versions/dockers/docker-gbsyncd-vs/versions-deb-bullseye index c8f39651ff40..8f1853a7df3f 100644 --- a/files/build/versions/dockers/docker-gbsyncd-vs/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-gbsyncd-vs/versions-deb-bullseye @@ -10,7 +10,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libmpfr6==4.1.0-3 diff --git a/files/build/versions/dockers/docker-lldp/versions-deb-bullseye b/files/build/versions/dockers/docker-lldp/versions-deb-bullseye index 6f1dbf3e3a74..36e584830d4f 100644 --- a/files/build/versions/dockers/docker-lldp/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-lldp/versions-deb-bullseye @@ -11,7 +11,7 @@ libevent-2.1-7==2.1.12-stable-1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libmpfr6==4.1.0-3 diff --git a/files/build/versions/dockers/docker-macsec/versions-deb-bullseye b/files/build/versions/dockers/docker-macsec/versions-deb-bullseye index cce9e68611e7..33d136604062 100644 --- a/files/build/versions/dockers/docker-macsec/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-macsec/versions-deb-bullseye @@ -10,7 +10,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libmpfr6==4.1.0-3 diff --git a/files/build/versions/dockers/docker-mux/versions-deb-bullseye b/files/build/versions/dockers/docker-mux/versions-deb-bullseye index bb0de019fcfd..74f70ebc0f01 100644 --- a/files/build/versions/dockers/docker-mux/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-mux/versions-deb-bullseye @@ -14,7 +14,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libmpfr6==4.1.0-3 diff --git a/files/build/versions/dockers/docker-nat/versions-deb-bullseye b/files/build/versions/dockers/docker-nat/versions-deb-bullseye index bdce4fce5990..79665247db1d 100644 --- a/files/build/versions/dockers/docker-nat/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-nat/versions-deb-bullseye @@ -13,7 +13,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libip4tc2==1.8.7-1 libip6tc2==1.8.7-1 diff --git a/files/build/versions/dockers/docker-orchagent/versions-deb-bullseye b/files/build/versions/dockers/docker-orchagent/versions-deb-bullseye index 3747c20b0f65..552e796dc122 100644 --- a/files/build/versions/dockers/docker-orchagent/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-orchagent/versions-deb-bullseye @@ -14,7 +14,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libkmod2==28-1 diff --git a/files/build/versions/dockers/docker-platform-monitor/versions-deb-bullseye b/files/build/versions/dockers/docker-platform-monitor/versions-deb-bullseye index 8e9e9c1b400b..ea571f6d9037 100644 --- a/files/build/versions/dockers/docker-platform-monitor/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-platform-monitor/versions-deb-bullseye @@ -31,7 +31,7 @@ libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 libgraphite2-3==1.3.14-1 libharfbuzz0b==2.7.4-1 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libi2c0==4.2-1+b1 libicu67==67.1-7 libipt2==2.0.3-1 @@ -54,8 +54,8 @@ libswsscommon-dbgsym==1.0.0 libthai-data==0.1.28-3 libthai0==0.1.28-3 libunwind8==1.3.2-2 -libx11-6==2:1.7.2-1 -libx11-data==2:1.7.2-1 +libx11-6==2:1.7.2-1+deb11u1 +libx11-data==2:1.7.2-1+deb11u1 libxau6==1:1.0.9-1 libxcb-render0==1.14-3 libxcb-shm0==1.14-3 diff --git a/files/build/versions/dockers/docker-ptf-sai/versions-py3 b/files/build/versions/dockers/docker-ptf-sai/versions-py3 index 3ac7ddd9c461..4454071cb0f1 100644 --- a/files/build/versions/dockers/docker-ptf-sai/versions-py3 +++ b/files/build/versions/dockers/docker-ptf-sai/versions-py3 @@ -3,7 +3,7 @@ getmac==0.9.4 netifaces==0.11.0 packet-helper==0.0.1 psutil==5.9.5 -ptf==0.9.3 +ptf==0.0.0 pyperclip==1.8.2 pysubnettree==0.35 scapy-helper==0.14.8 diff --git a/files/build/versions/dockers/docker-ptf/versions-deb-buster b/files/build/versions/dockers/docker-ptf/versions-deb-buster index ec72d61333c5..149586560650 100644 --- a/files/build/versions/dockers/docker-ptf/versions-deb-buster +++ b/files/build/versions/dockers/docker-ptf/versions-deb-buster @@ -88,9 +88,9 @@ libatk1.0-data==2.30.0-2 libatomic1==8.3.0-6 libatspi2.0-0==2.30.0-7 libauthen-sasl-perl==2.1600-1 -libavahi-client3==0.7-4+deb10u2 -libavahi-common-data==0.7-4+deb10u2 -libavahi-common3==0.7-4+deb10u2 +libavahi-client3==0.7-4+deb10u3 +libavahi-common-data==0.7-4+deb10u3 +libavahi-common3==0.7-4+deb10u3 libbabeltrace1==1.5.6-2+deb10u1 libbinutils==2.31.1-16 libblas3==3.8.0-2 @@ -144,7 +144,7 @@ libevent-pthreads-2.1-6==2.1.8-stable-4 libexpat1==2.2.6-2+deb10u6 libexpat1-dev==2.2.6-2+deb10u6 libfakeroot==1.23-1 -libfastjson4==0.99.8-2 +libfastjson4==0.99.8-2+deb10u1 libffi-dev==3.2.1-9 libfile-basedir-perl==0.08-1 libfile-desktopentry-perl==0.22-1 @@ -448,7 +448,7 @@ libxml-xpathengine-perl==0.14-1 libxml2==2.9.4+dfsg1-7+deb10u6 libxmu6==2:1.1.2-2+b3 libxmuu1==2:1.1.2-2+b3 -libxpm4==1:3.5.12-1 +libxpm4==1:3.5.12-1+deb10u1 libxrandr2==2:1.5.1-1 libxrender1==1:0.9.10-1 libxshmfence1==1.3-1 @@ -580,9 +580,9 @@ ttf-bitstream-vera==1.10-8 tzdata==2021a-0+deb10u11 ucf==3.0038+nmu1 unzip==6.0-23+deb10u3 -vim==2:8.1.0875-5+deb10u4 -vim-common==2:8.1.0875-5+deb10u4 -vim-runtime==2:8.1.0875-5+deb10u4 +vim==2:8.1.0875-5+deb10u5 +vim-common==2:8.1.0875-5+deb10u5 +vim-runtime==2:8.1.0875-5+deb10u5 wget==1.20.1-1.1 wireshark==2.6.20-0+deb10u7 wireshark-common==2.6.20-0+deb10u7 @@ -596,5 +596,5 @@ xdg-utils==1.1.3-1+deb10u1 xfonts-encodings==1:1.0.4-2 xfonts-utils==1:7.7+6 xkb-data==2.26-2 -xxd==2:8.1.0875-5+deb10u4 +xxd==2:8.1.0875-5+deb10u5 xz-utils==5.2.4-1+deb10u1 diff --git a/files/build/versions/dockers/docker-ptf/versions-py2 b/files/build/versions/dockers/docker-ptf/versions-py2 index 6eef6d0d23ba..ab45c6a42cce 100644 --- a/files/build/versions/dockers/docker-ptf/versions-py2 +++ b/files/build/versions/dockers/docker-ptf/versions-py2 @@ -1,4 +1,4 @@ -backports.functools-lru-cache==1.6.4 +backports.functools-lru-cache==1.6.5 backports.shutil-get-terminal-size==1.0.0 bcrypt==3.1.7 cffi==1.15.1 diff --git a/files/build/versions/dockers/docker-router-advertiser/versions-deb-bullseye b/files/build/versions/dockers/docker-router-advertiser/versions-deb-bullseye index a516e0f0fec0..defd23f2a500 100644 --- a/files/build/versions/dockers/docker-router-advertiser/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-router-advertiser/versions-deb-bullseye @@ -10,7 +10,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libmpfr6==4.1.0-3 diff --git a/files/build/versions/dockers/docker-sflow/versions-deb-bullseye b/files/build/versions/dockers/docker-sflow/versions-deb-bullseye index aa9aa0ce60e7..53e145fe6a77 100644 --- a/files/build/versions/dockers/docker-sflow/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-sflow/versions-deb-bullseye @@ -12,7 +12,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libmpfr6==4.1.0-3 diff --git a/files/build/versions/dockers/docker-snmp/versions-deb-bullseye b/files/build/versions/dockers/docker-snmp/versions-deb-bullseye index 93d1a8f0011e..00564bd6ba83 100644 --- a/files/build/versions/dockers/docker-snmp/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-snmp/versions-deb-bullseye @@ -14,7 +14,7 @@ libfido2-1==1.6.0-2 libfreeipmi17==1.6.6-4+deb11u1 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libmpfr6==4.1.0-3 diff --git a/files/build/versions/dockers/docker-sonic-mgmt-framework/versions-deb-buster b/files/build/versions/dockers/docker-sonic-mgmt-framework/versions-deb-buster index 7d4c38cbba18..e24e68194311 100644 --- a/files/build/versions/dockers/docker-sonic-mgmt-framework/versions-deb-buster +++ b/files/build/versions/dockers/docker-sonic-mgmt-framework/versions-deb-buster @@ -9,7 +9,7 @@ libdw1==0.176-1.1 libedit2==3.1-20181209-1 libglib2.0-0==2.58.3-2+deb10u4 libgpm2==1.20.7-5 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu63==63.1-6+deb10u3 libipt2==2.0-2 libpopt0==1.16-12 @@ -22,5 +22,5 @@ sonic-mgmt-framework==1.0-01 sonic-mgmt-framework-dbg==1.0-01 sshpass==1.06-1 strace==4.26-0.2 -vim==2:8.1.0875-5+deb10u4 -vim-runtime==2:8.1.0875-5+deb10u4 +vim==2:8.1.0875-5+deb10u5 +vim-runtime==2:8.1.0875-5+deb10u5 diff --git a/files/build/versions/dockers/docker-sonic-mgmt-framework/versions-py3 b/files/build/versions/dockers/docker-sonic-mgmt-framework/versions-py3 index 416b6173c410..272991b8d277 100644 --- a/files/build/versions/dockers/docker-sonic-mgmt-framework/versions-py3 +++ b/files/build/versions/dockers/docker-sonic-mgmt-framework/versions-py3 @@ -5,7 +5,7 @@ click==8.1.3 clickclick==20.10.2 connexion==2.7.0 flask==2.2.5 -grpcio==1.54.2 +grpcio==1.56.0 grpcio-tools==1.20.0 idna==3.4 importlib-resources==5.12.0 @@ -18,7 +18,7 @@ openapi-schema-validator==0.4.4 openapi-spec-validator==0.5.7 pathable==0.4.3 pkgutil_resolve_name==1.3.10 -protobuf==4.23.2 +protobuf==4.23.3 pyrsistent==0.19.3 python-dateutil==2.6.0 requests==2.31.0 diff --git a/files/build/versions/dockers/docker-sonic-telemetry/versions-deb-bullseye b/files/build/versions/dockers/docker-sonic-telemetry/versions-deb-bullseye index 363275ebac84..8390c1ad927b 100644 --- a/files/build/versions/dockers/docker-sonic-telemetry/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-sonic-telemetry/versions-deb-bullseye @@ -18,7 +18,7 @@ libgcc-10-dev==10.2.1-6 libglib2.0-0==2.66.8-1 libgomp1==10.2.1-6 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libitm1==10.2.1-6 diff --git a/files/build/versions/dockers/docker-sonic-vs/versions-py3 b/files/build/versions/dockers/docker-sonic-vs/versions-py3 index cd2773ac5c01..eea043b5daac 100644 --- a/files/build/versions/dockers/docker-sonic-vs/versions-py3 +++ b/files/build/versions/dockers/docker-sonic-vs/versions-py3 @@ -12,11 +12,11 @@ dbus-python==1.3.2 docker==6.1.3 docker-image-py==0.1.12 enlighten==1.11.2 -filelock==3.12.1 +filelock==3.12.2 idna==3.4 importlib-metadata==6.1.0 -jsonpatch==1.32 -jsonpointer==2.3 +jsonpatch==1.33 +jsonpointer==2.4 lazy-object-proxy==1.9.0 m2crypto==0.38.0 netifaces==0.10.9 @@ -26,7 +26,7 @@ pexpect==4.8.0 prefixed==0.7.0 prettyprinter==0.18.0 ptyprocess==0.7.0 -pycairo==1.23.0 +pycairo==1.24.0 pycparser==2.21 pygments==2.15.1 pygobject==3.44.1 @@ -41,6 +41,6 @@ toposort==1.6 typing_extensions==4.5.0 urllib3==1.26.16 wcwidth==0.2.6 -websocket-client==1.5.3 +websocket-client==1.6.1 www-authenticate==0.9.2 zipp==3.15.0 diff --git a/files/build/versions/dockers/docker-syncd-brcm-dnx/versions-deb-bullseye b/files/build/versions/dockers/docker-syncd-brcm-dnx/versions-deb-bullseye index cab91b0efaa5..938b3739f297 100644 --- a/files/build/versions/dockers/docker-syncd-brcm-dnx/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-syncd-brcm-dnx/versions-deb-bullseye @@ -12,7 +12,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libkmod2==28-1 diff --git a/files/build/versions/dockers/docker-syncd-brcm/versions-deb-bullseye b/files/build/versions/dockers/docker-syncd-brcm/versions-deb-bullseye index 3059a6370577..6bdbf3b6b2f8 100644 --- a/files/build/versions/dockers/docker-syncd-brcm/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-syncd-brcm/versions-deb-bullseye @@ -12,7 +12,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libkmod2==28-1 diff --git a/files/build/versions/dockers/docker-syncd-centec/versions-deb-bullseye b/files/build/versions/dockers/docker-syncd-centec/versions-deb-bullseye index 149de54ea5a1..542e98ea6633 100644 --- a/files/build/versions/dockers/docker-syncd-centec/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-syncd-centec/versions-deb-bullseye @@ -11,7 +11,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libkmod2==28-1 diff --git a/files/build/versions/dockers/docker-syncd-mlnx/versions-deb-bullseye b/files/build/versions/dockers/docker-syncd-mlnx/versions-deb-bullseye index 6e6e17770e5c..92530838ec0e 100644 --- a/files/build/versions/dockers/docker-syncd-mlnx/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-syncd-mlnx/versions-deb-bullseye @@ -20,7 +20,7 @@ libexpat1-dev==2.2.10-2+deb11u5 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libjs-sphinxdoc==3.4.3-2 diff --git a/files/build/versions/dockers/docker-syncd-vs/versions-deb-bullseye b/files/build/versions/dockers/docker-syncd-vs/versions-deb-bullseye index ce44d532911e..5491e98c301b 100644 --- a/files/build/versions/dockers/docker-syncd-vs/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-syncd-vs/versions-deb-bullseye @@ -11,7 +11,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libmpfr6==4.1.0-3 diff --git a/files/build/versions/dockers/docker-teamd/versions-deb-bullseye b/files/build/versions/dockers/docker-teamd/versions-deb-bullseye index 5de49809ff56..d7ad2c7caf6a 100644 --- a/files/build/versions/dockers/docker-teamd/versions-deb-bullseye +++ b/files/build/versions/dockers/docker-teamd/versions-deb-bullseye @@ -10,7 +10,7 @@ libedit2==3.1-20191231-2+b1 libfido2-1==1.6.0-2 libglib2.0-0==2.66.8-1 libgpm2==1.20.7-8 -libhiredis0.14-dbgsym==0.14.0-3~bpo9+1 +libhiredis0.14-dbgsym==0.14.1-1 libicu67==67.1-7 libipt2==2.0.3-1 libmpfr6==4.1.0-3 diff --git a/files/build/versions/dockers/sonic-slave-bullseye/versions-deb-bullseye b/files/build/versions/dockers/sonic-slave-bullseye/versions-deb-bullseye index 1222f554f884..16db332eb677 100644 --- a/files/build/versions/dockers/sonic-slave-bullseye/versions-deb-bullseye +++ b/files/build/versions/dockers/sonic-slave-bullseye/versions-deb-bullseye @@ -1106,7 +1106,6 @@ libsrt1.4-gnutls==1.4.2-1.3 libssh-gcrypt-4==0.9.7-0+deb11u1 libssh2-1==1.9.0-2 libssl-dev==1.1.1n-0+deb11u5 -libssl1.1==1.1.1n-0+deb11u5 libstdc++-10-dev==10.2.1-6 libstemmer0d==2.1.0-1 libstrictures-perl==2.000006-1 @@ -1237,11 +1236,11 @@ libwrap0==7.6.q-31 libwrap0-dev==7.6.q-31 libwww-perl==6.52-1 libwww-robotrules-perl==6.02-1 -libx11-6==2:1.7.2-1 -libx11-data==2:1.7.2-1 -libx11-dev==2:1.7.2-1 +libx11-6==2:1.7.2-1+deb11u1 +libx11-data==2:1.7.2-1+deb11u1 +libx11-dev==2:1.7.2-1+deb11u1 libx11-protocol-perl==0.56-7.1 -libx11-xcb1==2:1.7.2-1 +libx11-xcb1==2:1.7.2-1+deb11u1 libx264-160==2:0.160.3011+gitcde9a93-2.1 libx265-192==3.4-2 libx32asan6==10.2.1-6 @@ -1459,13 +1458,13 @@ php-timer==5.0.3-2 php-tokenizer==1.2.0-1 php-webmozart-assert==1.9.1-2 php-xml==2:7.4+76 -php7.4-cli==7.4.33-1+deb11u3 -php7.4-common==7.4.33-1+deb11u3 -php7.4-json==7.4.33-1+deb11u3 -php7.4-mbstring==7.4.33-1+deb11u3 -php7.4-opcache==7.4.33-1+deb11u3 -php7.4-readline==7.4.33-1+deb11u3 -php7.4-xml==7.4.33-1+deb11u3 +php7.4-cli==7.4.33-1+deb11u4 +php7.4-common==7.4.33-1+deb11u4 +php7.4-json==7.4.33-1+deb11u4 +php7.4-mbstring==7.4.33-1+deb11u4 +php7.4-opcache==7.4.33-1+deb11u4 +php7.4-readline==7.4.33-1+deb11u4 +php7.4-xml==7.4.33-1+deb11u4 phpunit==9.5.2-1 phpunit-cli-parser==1.0.1-1 phpunit-code-unit==1.0.8-1 diff --git a/files/build/versions/dockers/sonic-slave-bullseye/versions-py3 b/files/build/versions/dockers/sonic-slave-bullseye/versions-py3 index 71fdfeaa458a..aab91a4138ef 100644 --- a/files/build/versions/dockers/sonic-slave-bullseye/versions-py3 +++ b/files/build/versions/dockers/sonic-slave-bullseye/versions-py3 @@ -6,7 +6,7 @@ automat==20.2.0 babel==2.8.0 bcrypt==3.1.7 beautifulsoup4==4.9.3 -bitarray==2.7.5 +bitarray==2.7.6 certifi==2020.6.20 chardet==4.0.0 click==7.1.2 @@ -84,7 +84,7 @@ python-magic==0.4.20 pytz==2021.1 pyxdg==0.27 pyyaml==5.4.1 -redis==4.5.5 +redis==4.6.0 regex==2023.6.3 requests==2.25.1 roman==2.0.0 diff --git a/files/build/versions/dockers/sonic-slave-buster/versions-deb-buster b/files/build/versions/dockers/sonic-slave-buster/versions-deb-buster index 253478a6bec3..0ef357e93936 100644 --- a/files/build/versions/dockers/sonic-slave-buster/versions-deb-buster +++ b/files/build/versions/dockers/sonic-slave-buster/versions-deb-buster @@ -270,15 +270,15 @@ libaugeas0==1.11.0-3 libauparse-dev==1:2.8.4-3 libauparse0==1:2.8.4-3 libauthen-sasl-perl==2.1600-1 -libavahi-client3==0.7-4+deb10u2 -libavahi-common-data==0.7-4+deb10u2 -libavahi-common3==0.7-4+deb10u2 +libavahi-client3==0.7-4+deb10u3 +libavahi-common-data==0.7-4+deb10u3 +libavahi-common3==0.7-4+deb10u3 libavalon-framework-java==4.2.0-10 libavc1394-0==0.5.4-5 -libavcodec58==7:4.1.10-0+deb10u1 -libavfilter7==7:4.1.10-0+deb10u1 -libavformat58==7:4.1.10-0+deb10u1 -libavutil56==7:4.1.10-0+deb10u1 +libavcodec58==7:4.1.11-0+deb10u1 +libavfilter7==7:4.1.11-0+deb10u1 +libavformat58==7:4.1.11-0+deb10u1 +libavutil56==7:4.1.11-0+deb10u1 libb-hooks-endofscope-perl==0.24-1 libb-hooks-op-check-perl==0.22-1+b1 libbabeltrace-dev==1.5.6-2+deb10u1 @@ -500,7 +500,7 @@ libexplain51==1.4.D001-8 libexporter-tiny-perl==1.002001-1 libfabric1==1.6.2-3 libfakeroot==1.23-1 -libfastjson4==0.99.8-2 +libfastjson4==0.99.8-2+deb10u1 libfcgi-perl==0.78-2+b3 libfdt1==1.4.7-4 libffi-dev==3.2.1-9 @@ -947,7 +947,7 @@ libpolkit-agent-1-0==0.105-25+deb10u1 libpolkit-backend-1-0==0.105-25+deb10u1 libpolkit-gobject-1-0==0.105-25+deb10u1 libpopt0==1.16-12 -libpostproc55==7:4.1.10-0+deb10u1 +libpostproc55==7:4.1.11-0+deb10u1 libpotrace0==1.15-1 libprocps7==2:3.3.15-2 libprotobuf-c1==1.3.1-1+b1 @@ -1110,8 +1110,8 @@ libsubunit-dev==1.3.0-1 libsubunit0==1.3.0-1 libsurefire-java==2.22.1-1 libswitch-perl==2.17-2 -libswresample3==7:4.1.10-0+deb10u1 -libswscale5==7:4.1.10-0+deb10u1 +libswresample3==7:4.1.11-0+deb10u1 +libswscale5==7:4.1.11-0+deb10u1 libsynctex2==2018.20181218.49446-1+deb10u2 libsys-hostname-long-perl==1.5-1 libsystemd-dev==241-7~deb10u9 @@ -1319,7 +1319,7 @@ libxmlgraphics-commons-java==2.3-1+deb10u1 libxmlrpc-lite-perl==0.717-2 libxmu6==2:1.1.2-2+b3 libxmuu1==2:1.1.2-2+b3 -libxpm4==1:3.5.12-1 +libxpm4==1:3.5.12-1+deb10u1 libxrandr-dev==2:1.5.1-1 libxrandr2==2:1.5.1-1 libxrender-dev==1:0.9.10-1 @@ -1439,13 +1439,13 @@ php-token-stream==3.0.1-1 php-tokenizer==1.1.0-1 php-webmozart-assert==1.4.0-3 php-xml==2:7.3+69 -php7.3-cli==7.3.31-1~deb10u3 -php7.3-common==7.3.31-1~deb10u3 -php7.3-json==7.3.31-1~deb10u3 -php7.3-mbstring==7.3.31-1~deb10u3 -php7.3-opcache==7.3.31-1~deb10u3 -php7.3-readline==7.3.31-1~deb10u3 -php7.3-xml==7.3.31-1~deb10u3 +php7.3-cli==7.3.31-1~deb10u4 +php7.3-common==7.3.31-1~deb10u4 +php7.3-json==7.3.31-1~deb10u4 +php7.3-mbstring==7.3.31-1~deb10u4 +php7.3-opcache==7.3.31-1~deb10u4 +php7.3-readline==7.3.31-1~deb10u4 +php7.3-xml==7.3.31-1~deb10u4 phpunit==7.5.6-1 phpunit-code-unit-reverse-lookup==1.0.1-1 phpunit-comparator==3.0.2-1 @@ -1547,7 +1547,7 @@ python-pygments==2.3.1+dfsg-1+deb10u2 python-pyparsing==2.2.0+dfsg1-2 python-pytest==3.10.1-2 python-pytest-cov==2.6.0-1 -python-requests==2.21.0-1 +python-requests==2.21.0-1+deb10u1 python-roman==2.0.0-3 python-scandir==1.9.0-2 python-secretstorage==2.3.1-2 @@ -1630,7 +1630,7 @@ python3-pygments==2.3.1+dfsg-1+deb10u2 python3-pyparsing==2.2.0+dfsg1-2 python3-pytest==3.10.1-2 python3-pytest-cov==2.6.0-1 -python3-requests==2.21.0-1 +python3-requests==2.21.0-1+deb10u1 python3-roman==2.0.0-3 python3-secretstorage==2.3.1-2 python3-setuptools==40.8.0-1 @@ -1739,9 +1739,9 @@ uuid-dev==2.33.1-0.1 va-driver-all==2.4.0-1 vdpau-driver-all==1.1.1-10 velocity==1.7-5+deb10u1 -vim==2:8.1.0875-5+deb10u4 -vim-common==2:8.1.0875-5+deb10u4 -vim-runtime==2:8.1.0875-5+deb10u4 +vim==2:8.1.0875-5+deb10u5 +vim-common==2:8.1.0875-5+deb10u5 +vim-runtime==2:8.1.0875-5+deb10u5 wayland-protocols==1.17-1 wdiff==1.2.2-2+b1 wget==1.20.1-1.1 @@ -1773,7 +1773,7 @@ xorg-sgml-doctools==1:1.11-1 xsltproc==1.1.32-2.2~deb10u2 xterm==344-1+deb10u2 xtrans-dev==1.3.5-1 -xxd==2:8.1.0875-5+deb10u4 +xxd==2:8.1.0875-5+deb10u5 xz-utils==5.2.4-1+deb10u1 zip==3.0-11+b1 zlib1g-dev==1:1.2.11.dfsg-1+deb10u2 diff --git a/files/build/versions/dockers/sonic-slave-buster/versions-py3 b/files/build/versions/dockers/sonic-slave-buster/versions-py3 index 4ad4461e66c8..db0d9fcfdbfa 100644 --- a/files/build/versions/dockers/sonic-slave-buster/versions-py3 +++ b/files/build/versions/dockers/sonic-slave-buster/versions-py3 @@ -4,7 +4,7 @@ async-timeout==4.0.2 atomicwrites==1.1.5 attrs==18.2.0 babel==2.6.0 -bitarray==2.7.5 +bitarray==2.7.6 certifi==2018.8.24 chardet==3.0.4 cov-core==1.15.0 @@ -20,7 +20,7 @@ gcovr==4.1 gpg==1.12.0 idna==2.6 imagesize==1.0.0 -importlib-metadata==6.6.0 +importlib-metadata==6.7.0 jinja2==3.0.3 keyring==17.1.1 keyrings.alt==3.1.1 @@ -64,7 +64,7 @@ python-magic==0.4.16 pytz==2019.1 pyxdg==0.25 pyyaml==5.4.1 -redis==4.5.5 +redis==4.6.0 regex==2023.6.3 requests==2.21.0 roman==2.0.0 diff --git a/files/build/versions/host-image/versions-deb-bullseye b/files/build/versions/host-image/versions-deb-bullseye index 42d400d5b19e..84673f52d380 100644 --- a/files/build/versions/host-image/versions-deb-bullseye +++ b/files/build/versions/host-image/versions-deb-bullseye @@ -146,7 +146,7 @@ libgpm2==1.20.7-8 libgrpc++1==1.30.2-3 libgrpc10==1.30.2-3 libhavege2==1.9.14-1 -libhiredis0.14==0.14.0-3~bpo9+1 +libhiredis0.14==0.14.1-1 libi2c0==4.2-1+b1 libiniparser1==4.1-4 libip4tc2==1.8.7-1 @@ -297,6 +297,7 @@ python3.9==3.9.2-1 python3.9-minimal==3.9.2-1 rasdaemon==0.6.6-2 readline-common==8.1-1 +resolvconf==1.87 rsyslog==8.2302.0-1~bpo11+1 runit-helper==2.10.3 sbsigntool==0.9.2-2 diff --git a/files/build/versions/host-image/versions-py3 b/files/build/versions/host-image/versions-py3 index cd669752ee12..216ceea00ae1 100644 --- a/files/build/versions/host-image/versions-py3 +++ b/files/build/versions/host-image/versions-py3 @@ -15,7 +15,7 @@ dbus-python==1.2.16 docker==6.1.1 docker-image-py==0.1.12 enlighten==1.11.2 -filelock==3.12.1 +filelock==3.12.2 grpcio==1.39.0 grpcio-tools==1.39.0 idna==3.4 @@ -25,8 +25,8 @@ ipaddress==1.0.23 j2cli==0.3.10 jinja2==3.1.2 jsondiff==2.0.0 -jsonpatch==1.32 -jsonpointer==2.3 +jsonpatch==1.33 +jsonpointer==2.4 jsonschema==2.6.0 lazy-object-proxy==1.9.0 lxml==4.9.1 @@ -48,7 +48,7 @@ psutil==5.9.5 ptyprocess==0.7.0 pyang==2.5.3 pyangbind==0.8.1 -pycairo==1.23.0 +pycairo==1.24.0 pycparser==2.21 pycurl==7.43.0.6 pygments==2.15.1 @@ -72,7 +72,7 @@ toposort==1.6 urllib3==1.26.16 watchdog==0.10.3 wcwidth==0.2.6 -websocket-client==1.5.3 +websocket-client==1.6.1 wheel==0.35.1 www-authenticate==0.9.2 xmltodict==0.12.0 diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index 81b147655887..049f1c04ca41 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -430,6 +430,15 @@ j2 files/dhcp/dhclient.conf.j2 | sudo tee $FILESYSTEM_ROOT/etc/dhcp/dhclient.con sudo cp files/dhcp/ifupdown2_policy.json $FILESYSTEM_ROOT/etc/network/ifupdown2/policy.d sudo cp files/dhcp/90-dhcp6-systcl.conf.j2 $FILESYSTEM_ROOT_USR_SHARE_SONIC_TEMPLATES/ +# Copy DNS configuration files and templates +sudo cp $IMAGE_CONFIGS/resolv-config/resolv-config.service $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM +sudo cp $IMAGE_CONFIGS/resolv-config/resolv-config.sh $FILESYSTEM_ROOT/usr/bin/ +sudo cp $IMAGE_CONFIGS/resolv-config/resolv.conf.j2 $FILESYSTEM_ROOT_USR_SHARE_SONIC_TEMPLATES/ +echo "resolv-config.service" | sudo tee -a $GENERATED_SERVICE_FILE +sudo LANG=C chroot $FILESYSTEM_ROOT systemctl disable resolvconf.service +sudo mkdir -p $FILESYSTEM_ROOT/etc/resolvconf/update-libc.d/ +sudo cp $IMAGE_CONFIGS/resolv-config/update-containers $FILESYSTEM_ROOT/etc/resolvconf/update-libc.d/ + # Copy initial interfaces configuration file, will be overwritten on first boot sudo cp $IMAGE_CONFIGS/interfaces/init_interfaces $FILESYSTEM_ROOT/etc/network/interfaces sudo mkdir -p $FILESYSTEM_ROOT/etc/network/interfaces.d diff --git a/files/image_config/interfaces/interfaces-config.sh b/files/image_config/interfaces/interfaces-config.sh index f6aa4147a4e4..cb2faea91f31 100755 --- a/files/image_config/interfaces/interfaces-config.sh +++ b/files/image_config/interfaces/interfaces-config.sh @@ -60,6 +60,8 @@ for intf_pid in $(ls -1 /var/run/dhclient*.Ethernet*.pid 2> /dev/null); do [[ -f ${intf_pid} ]] && kill `cat ${intf_pid}` && rm -f ${intf_pid} done +/usr/bin/resolv-config.sh cleanup + # Read sysctl conf files again sysctl -p /etc/sysctl.d/90-dhcp6-systcl.conf diff --git a/files/image_config/resolv-config/resolv-config.service b/files/image_config/resolv-config/resolv-config.service new file mode 100644 index 000000000000..18a261dcf5d0 --- /dev/null +++ b/files/image_config/resolv-config/resolv-config.service @@ -0,0 +1,15 @@ +[Unit] +Description=Update DNS configuration +Requires=updategraph.service +After=updategraph.service +BindsTo=sonic.target +After=sonic.target +StartLimitIntervalSec=0 + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/resolv-config.sh start + +[Install] +WantedBy=sonic.target diff --git a/files/image_config/resolv-config/resolv-config.sh b/files/image_config/resolv-config/resolv-config.sh new file mode 100755 index 000000000000..cffda6acb54b --- /dev/null +++ b/files/image_config/resolv-config/resolv-config.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +WD=/var/run/resolvconf/ +CONFIG_DIR=${WD}/interface/ +STATIC_CONFIG_FILE=mgmt.static +DYNAMIC_CONFIG_FILE_TEMPLATE=*.dhclient + +update_symlink() +{ + ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf +} + +start() +{ + update_symlink + + redis-dump -d 4 -k "DNS_NAMESERVER*" -y > /tmp/dns.json + if [[ $? -eq 0 && "$(cat /tmp/dns.json)" != "{}" ]]; then + # Apply static DNS configuration and disable updates + /sbin/resolvconf --disable-updates + pushd ${CONFIG_DIR} + # Backup dynamic configuration to restore it when the static configuration is removed + mv ${DYNAMIC_CONFIG_FILE_TEMPLATE} ${WD} || true + + sonic-cfggen -d -t /usr/share/sonic/templates/resolv.conf.j2,${STATIC_CONFIG_FILE} + + /sbin/resolvconf --enable-updates + /sbin/resolvconf -u + /sbin/resolvconf --disable-updates + popd + else + # Dynamic DNS configuration. Enable updates. It is expected to receive configuraution for DHCP server + /sbin/resolvconf --disable-updates + pushd ${CONFIG_DIR} + rm -f ${STATIC_CONFIG_FILE} + # Restore dynamic configuration if it exists + mv ${WD}/${DYNAMIC_CONFIG_FILE_TEMPLATE} ${CONFIG_DIR} || true + + /sbin/resolvconf --enable-updates + /sbin/resolvconf -u + fi +} + +clean-dynamic-conf() +{ + rm -f ${WD}/${DYNAMIC_CONFIG_FILE_TEMPLATE} + rm -f ${WD}/postponed-update +} + +case $1 in + start) + start + ;; + cleanup) + clean-dynamic-conf + ;; + *) + echo "Usage: $0 {start|clean-dynamic-conf}" + exit 2 + ;; +esac diff --git a/files/image_config/resolv-config/resolv.conf b/files/image_config/resolv-config/resolv.conf deleted file mode 100644 index 6d6da27c7304..000000000000 --- a/files/image_config/resolv-config/resolv.conf +++ /dev/null @@ -1 +0,0 @@ -nameserver 10.64.5.5 diff --git a/files/image_config/resolv-config/resolv.conf.head b/files/image_config/resolv-config/resolv.conf.head new file mode 100644 index 000000000000..db81bded75e9 --- /dev/null +++ b/files/image_config/resolv-config/resolv.conf.head @@ -0,0 +1,2 @@ +# Dynamic resolv.conf(5) file generated by resolvconf(8) +# The content of this file may be overwritten during a config reload. diff --git a/files/image_config/resolv-config/resolv.conf.j2 b/files/image_config/resolv-config/resolv.conf.j2 new file mode 100644 index 000000000000..4887d2e01d45 --- /dev/null +++ b/files/image_config/resolv-config/resolv.conf.j2 @@ -0,0 +1,3 @@ +{% for ip in DNS_NAMESERVER|sort %} +nameserver {{ ip }} +{% endfor -%} diff --git a/files/image_config/resolv-config/update-containers b/files/image_config/resolv-config/update-containers new file mode 100755 index 000000000000..47d8328a80fe --- /dev/null +++ b/files/image_config/resolv-config/update-containers @@ -0,0 +1,7 @@ +#!/bin/bash + +for container in $(docker ps -a --format=" {{ .ID }}"); do + docker cp -L /etc/resolv.conf ${container}:/_resolv.conf + docker exec -t ${container} bash -c "cat /_resolv.conf > /etc/resolv.conf" + docker exec -t ${container} bash -c "rm /_resolv.conf" +done diff --git a/files/image_config/systemd/systemd-udevd/fix-udev-rule-may-fail-if-daemon-reload-command-runs.patch b/files/image_config/systemd/systemd-udevd/fix-udev-rule-may-fail-if-daemon-reload-command-runs.patch new file mode 100644 index 000000000000..960efcbde6fe --- /dev/null +++ b/files/image_config/systemd/systemd-udevd/fix-udev-rule-may-fail-if-daemon-reload-command-runs.patch @@ -0,0 +1,24 @@ +# ------------------------------------------------------------------- +# Patch for /lib/systemd/system/systemd-udevd.service +# Fix issue: The udev rule may fail to be executed because the +# daemon-reload command is executed in parallel +# Github issue: https://github.com/systemd/systemd/issues/24668 +# Github PR: https://github.com/systemd/systemd/pull/24673 +# ------------------------------------------------------------------- +@@ -16,8 +16,6 @@ + ConditionPathIsReadWrite=/sys + + [Service] +-DeviceAllow=block-* rwm +-DeviceAllow=char-* rwm + Type=notify + # Note that udev will reset the value internally for its workers + OOMScoreAdjust=-1000 +@@ -29,7 +27,6 @@ + KillMode=mixed + TasksMax=infinity + PrivateMounts=yes +-ProtectClock=yes + ProtectHostname=yes + MemoryDenyWriteExecute=yes + RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6 \ No newline at end of file diff --git a/files/scripts/swss.sh b/files/scripts/swss.sh index c0c9b1952b05..0e37fe1376cd 100755 --- a/files/scripts/swss.sh +++ b/files/scripts/swss.sh @@ -175,7 +175,7 @@ start() { $SONIC_DB_CLI GB_ASIC_DB FLUSHDB $SONIC_DB_CLI GB_COUNTERS_DB FLUSHDB $SONIC_DB_CLI RESTAPI_DB FLUSHDB - clean_up_tables STATE_DB "'PORT_TABLE*', 'MGMT_PORT_TABLE*', 'VLAN_TABLE*', 'VLAN_MEMBER_TABLE*', 'LAG_TABLE*', 'LAG_MEMBER_TABLE*', 'INTERFACE_TABLE*', 'MIRROR_SESSION*', 'VRF_TABLE*', 'FDB_TABLE*', 'FG_ROUTE_TABLE*', 'BUFFER_POOL*', 'BUFFER_PROFILE*', 'MUX_CABLE_TABLE*', 'ADVERTISE_NETWORK_TABLE*', 'VXLAN_TUNNEL_TABLE*', 'MACSEC_PORT_TABLE*', 'MACSEC_INGRESS_SA_TABLE*', 'MACSEC_EGRESS_SA_TABLE*', 'MACSEC_INGRESS_SC_TABLE*', 'MACSEC_EGRESS_SC_TABLE*', 'VRF_OBJECT_TABLE*', 'VNET_MONITOR_TABLE*', 'BFD_SESSION_TABLE*', 'VNET_ROUTE_TUNNEL_TABLE*'" + clean_up_tables STATE_DB "'PORT_TABLE*', 'MGMT_PORT_TABLE*', 'VLAN_TABLE*', 'VLAN_MEMBER_TABLE*', 'LAG_TABLE*', 'LAG_MEMBER_TABLE*', 'INTERFACE_TABLE*', 'MIRROR_SESSION*', 'VRF_TABLE*', 'FDB_TABLE*', 'FG_ROUTE_TABLE*', 'BUFFER_POOL*', 'BUFFER_PROFILE*', 'MUX_CABLE_TABLE*', 'ADVERTISE_NETWORK_TABLE*', 'VXLAN_TUNNEL_TABLE*', 'VNET_ROUTE*', 'MACSEC_PORT_TABLE*', 'MACSEC_INGRESS_SA_TABLE*', 'MACSEC_EGRESS_SA_TABLE*', 'MACSEC_INGRESS_SC_TABLE*', 'MACSEC_EGRESS_SC_TABLE*', 'VRF_OBJECT_TABLE*', 'VNET_MONITOR_TABLE*', 'BFD_SESSION_TABLE*'" $SONIC_DB_CLI APPL_STATE_DB FLUSHDB rm -rf /tmp/cache fi diff --git a/installer/sharch_body.sh b/installer/sharch_body.sh index e6289371cd58..9683b4692dca 100644 --- a/installer/sharch_body.sh +++ b/installer/sharch_body.sh @@ -11,7 +11,9 @@ ## echo -n "Verifying image checksum ..." -sha1=$(sed -e '1,/^exit_marker$/d' "$0" | sha1sum | awk '{ print $1 }') +payload_image_size=%%PAYLOAD_IMAGE_SIZE%% + +sha1=$(sed -e '1,/^exit_marker$/d' "$0" | head -c $payload_image_size | sha1sum | awk '{ print $1 }') payload_sha1=%%IMAGE_SHA1%% @@ -45,7 +47,9 @@ if [ "$(id -u)" = "0" ] ; then fi cd $tmp_dir echo -n "Preparing image archive ..." -sed -e '1,/^exit_marker$/d' $archive_path | tar xf - || exit 1 + +sed -e '1,/^exit_marker$/d' $archive_path | head -c $payload_image_size | tar xf - || exit 1 + echo " OK." cd $cur_wd if [ -n "$extract" ] ; then diff --git a/onie-mk-demo.sh b/onie-mk-demo.sh index 0905673d42cb..b466441ca31b 100755 --- a/onie-mk-demo.sh +++ b/onie-mk-demo.sh @@ -14,6 +14,9 @@ output_file=$6 demo_type=$7 image_version=$8 onie_image_part_size=$9 +onie_installer_payload=${10} +cert_file=${11} +key_file=${12} shift 9 @@ -100,7 +103,7 @@ sed -i -e "s/%%DEMO_TYPE%%/$demo_type/g" \ -e "s@%%OUTPUT_RAW_IMAGE%%@$output_raw_image@" \ $tmp_installdir/install.sh || clean_up 1 echo -n "." -cp -r $* $tmp_installdir || clean_up 1 +cp -r $onie_installer_payload $tmp_installdir || clean_up 1 echo -n "." [ -r "$platform_conf" ] && { cp $platform_conf $tmp_installdir || clean_up 1 @@ -130,7 +133,50 @@ cp $installer_dir/sharch_body.sh $output_file || { # Replace variables in the sharch template sed -i -e "s/%%IMAGE_SHA1%%/$sha1/" $output_file echo -n "." +tar_size="$(wc -c < "${sharch}")" +sed -i -e "s|%%PAYLOAD_IMAGE_SIZE%%|${tar_size}|" ${output_file} cat $sharch >> $output_file +echo "secure upgrade flags: SECURE_UPGRADE_MODE = $SECURE_UPGRADE_MODE, \ +SECURE_UPGRADE_DEV_SIGNING_KEY = $SECURE_UPGRADE_DEV_SIGNING_KEY, SECURE_UPGRADE_SIGNING_CERT = $SECURE_UPGRADE_SIGNING_CERT" + +if [ "$SECURE_UPGRADE_MODE" = "dev" -o "$SECURE_UPGRADE_MODE" = "prod" ]; then + CMS_SIG="${tmp_dir}/signature.sig" + DIR="$(dirname "$0")" + scripts_dir="${DIR}/scripts" + echo "$0 $SECURE_UPGRADE_MODE signing - creating CMS signature for ${output_file}. Output file ${CMS_SIG}" + + if [ "$SECURE_UPGRADE_MODE" = "dev" ]; then + echo "$0 dev keyfile location: ${key_file}." + [ -f ${scripts_dir}/sign_image_dev.sh ] || { + echo "dev sign script ${scripts_dir}/sign_image_dev.sh not found" + rm -rf ${output_file} + } + (${scripts_dir}/sign_image_dev.sh ${cert_file} ${key_file} ${output_file} ${CMS_SIG}) || { + echo "CMS sign error $?" + rm -rf ${CMS_SIG} ${output_file} + } + else # "$SECURE_UPGRADE_MODE" has to be equal to "prod" + [ -f ${scripts_dir}/sign_image_${machine}.sh ] || { + echo "prod sign script ${scripts_dir}/sign_image_${machine}.sh not found" + rm -rf ${output_file} + } + (${scripts_dir}/sign_image_${machine}.sh ${output_file} ${CMS_SIG} ${SECURE_UPGRADE_MODE}) || { + echo "CMS sign error $?" + rm -rf ${CMS_SIG} ${output_file} + } + fi + + [ -f "$CMS_SIG" ] || { + echo "Error: CMS signature not created - exiting without signing" + clean_up 1 + } + # append signature to binary + cat ${CMS_SIG} >> ${output_file} + sudo rm -rf ${CMS_SIG} +elif [ "$SECURE_UPGRADE_MODE" -ne "no_sign" ]; then + echo "SECURE_UPGRADE_MODE not defined or defined as $SECURE_UPGRADE_MODE - build without signing" +fi + rm -rf $tmp_dir echo " Done." diff --git a/platform/barefoot/sonic-platform-modules-arista b/platform/barefoot/sonic-platform-modules-arista index 1c036127fd4a..cca827843c05 160000 --- a/platform/barefoot/sonic-platform-modules-arista +++ b/platform/barefoot/sonic-platform-modules-arista @@ -1 +1 @@ -Subproject commit 1c036127fd4a0512a36ac0fc489a619fe87280ba +Subproject commit cca827843c0528347b996aedd5790558c5d6a656 diff --git a/platform/broadcom/sonic-platform-modules-arista b/platform/broadcom/sonic-platform-modules-arista index 1c036127fd4a..cca827843c05 160000 --- a/platform/broadcom/sonic-platform-modules-arista +++ b/platform/broadcom/sonic-platform-modules-arista @@ -1 +1 @@ -Subproject commit 1c036127fd4a0512a36ac0fc489a619fe87280ba +Subproject commit cca827843c0528347b996aedd5790558c5d6a656 diff --git a/platform/marvell-arm64/sai.mk b/platform/marvell-arm64/sai.mk index f6372ca683c0..c6d84fa10db5 100644 --- a/platform/marvell-arm64/sai.mk +++ b/platform/marvell-arm64/sai.mk @@ -1,6 +1,6 @@ # Marvell SAI -export MRVL_SAI_VERSION = 1.11.0-1 +export MRVL_SAI_VERSION = 1.12.0-1 export MRVL_SAI = mrvllibsai_$(MRVL_SAI_VERSION)_$(PLATFORM_ARCH).deb $(MRVL_SAI)_SRC_PATH = $(PLATFORM_PATH)/sai diff --git a/platform/marvell-armhf/platform.conf b/platform/marvell-armhf/platform.conf index 0113c6a05ac0..9bfd495ed388 100644 --- a/platform/marvell-armhf/platform.conf +++ b/platform/marvell-armhf/platform.conf @@ -176,8 +176,7 @@ prepare_boot_menu() { fi BORDER='echo "---------------------------------------------------";echo;' fw_setenv ${FW_ARG} print_menu "$BORDER $BOOT1 $BOOT2 $BOOT3 $BORDER" > /dev/null - - fw_setenv ${FW_ARG} linuxargs "net.ifnames=0 loopfstype=squashfs loop=$image_dir/$FILESYSTEM_SQUASHFS systemd.unified_cgroup_hierarchy=0 varlog_size=$VAR_LOG_SIZE loglevel=4 ${extra_cmdline_linux}" > /dev/null + fw_setenv ${FW_ARG} linuxargs "net.ifnames=0 loopfstype=squashfs loop=$image_dir/$FILESYSTEM_SQUASHFS systemd.unified_cgroup_hierarchy=0 varlog_size=$VAR_LOG_SIZE loglevel=4 ${extra_cmdline_linux} ${ONIE_PLATFORM_EXTRA_CMDLINE_LINUX}" > /dev/null fw_setenv ${FW_ARG} linuxargs_old "net.ifnames=0 loopfstype=squashfs loop=$image_dir_old/$FILESYSTEM_SQUASHFS systemd.unified_cgroup_hierarchy=0 varlog_size=$VAR_LOG_SIZE loglevel=4" > /dev/null # Set boot configs diff --git a/platform/p4/docker-sonic-p4/Dockerfile.j2 b/platform/p4/docker-sonic-p4/Dockerfile.j2 index 80503b910e84..11e34ff1f88a 100644 --- a/platform/p4/docker-sonic-p4/Dockerfile.j2 +++ b/platform/p4/docker-sonic-p4/Dockerfile.j2 @@ -81,7 +81,7 @@ RUN sed -ri 's/^(save .*$)/# \1/g; s/^client-output-buffer-limit pubsub [0-9]+mb [0-9]+mb [0-9]+/client-output-buffer-limit pubsub 0 0 0/ \ ' /etc/redis/redis.conf -ADD port_config.ini /port_config.ini +COPY ["port_config.ini", "/port_config.ini"] COPY ["start.sh", "orchagent.sh", "config_bm.sh", "/usr/bin/"] COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] COPY ["files/configdb-load.sh", "/usr/bin/"] diff --git a/platform/vs/docker-sonic-vs/Dockerfile.j2 b/platform/vs/docker-sonic-vs/Dockerfile.j2 index 4b356fa1a17a..bbff022601c9 100644 --- a/platform/vs/docker-sonic-vs/Dockerfile.j2 +++ b/platform/vs/docker-sonic-vs/Dockerfile.j2 @@ -147,6 +147,7 @@ COPY ["zero_profiles.json", "/etc/sonic"] COPY ["buffermgrd.sh", "/usr/bin/"] COPY ["platform.json", "/usr/share/sonic/device/x86_64-kvm_x86_64-r0/"] +COPY ["platform-npu-2p.json", "/usr/share/sonic/device/x86_64-kvm_x86_64-r0/"] COPY ["hwsku.json", "/usr/share/sonic/device/x86_64-kvm_x86_64-r0/Force10-S6000/"] COPY ["hwsku.json", "/usr/share/sonic/device/x86_64-kvm_x86_64-r0/brcm_gearbox_vs/"] COPY ["hwsku.json", "/usr/share/sonic/device/x86_64-kvm_x86_64-r0/Mellanox-SN2700/"] diff --git a/platform/vs/docker-sonic-vs/platform-npu-2p.json b/platform/vs/docker-sonic-vs/platform-npu-2p.json new file mode 100644 index 000000000000..718582b1a283 --- /dev/null +++ b/platform/vs/docker-sonic-vs/platform-npu-2p.json @@ -0,0 +1,23 @@ +{ + "interfaces": { + "Ethernet0": { + "index": "1,1,1,1", + "lanes": "0,1,2,3", + "breakout_modes": { + "1x100G": ["etp1"], + "1x100G[50G,40G,25G,10G]": ["etp1"], + "2x50G[25G,10G]": ["etp1a", "etp1b"], + "4x10G[25G]": ["etp1a", "etp1b", "etp1c", "etp1d"] + } + }, + "Ethernet4": { + "index": "2,2,2,2", + "lanes": "4,5,6,7", + "breakout_modes": { + "1x100G": ["etp2"], + "1x100G[50G,40G,25G,10G]": ["etp2"], + "2x50G[25G,10G]": ["etp2a", "etp2b"] + } + } + } +} diff --git a/platform/vs/docker-sonic-vs/start.sh b/platform/vs/docker-sonic-vs/start.sh index 9911c1bfe011..59c05ed4eabf 100755 --- a/platform/vs/docker-sonic-vs/start.sh +++ b/platform/vs/docker-sonic-vs/start.sh @@ -8,6 +8,11 @@ ln -sf /usr/share/sonic/device/$PLATFORM /usr/share/sonic/platform ln -sf /usr/share/sonic/device/$PLATFORM/$HWSKU /usr/share/sonic/hwsku +PLATFORM_CONF=platform.json +if [[ $HWSKU == "NPU-2P" ]]; then + PLATFORM_CONF=platform-npu-2p.json +fi + pushd /usr/share/sonic/hwsku # filter available front panel ports in lanemap.ini @@ -45,9 +50,14 @@ if [ -f /etc/sonic/config_db.json ]; then mv /tmp/config_db.json /etc/sonic/config_db.json else # generate and merge buffers configuration into config file - sonic-cfggen -k $HWSKU -p /usr/share/sonic/device/$PLATFORM/platform.json -t /usr/share/sonic/hwsku/buffers.json.j2 > /tmp/buffers.json - sonic-cfggen -j /etc/sonic/init_cfg.json -t /usr/share/sonic/hwsku/qos.json.j2 > /tmp/qos.json - sonic-cfggen -p /usr/share/sonic/device/$PLATFORM/platform.json -k $HWSKU --print-data > /tmp/ports.json + if [ -f /usr/share/sonic/hwsku/buffers.json.j2 ]; then + sonic-cfggen -k $HWSKU -p /usr/share/sonic/device/$PLATFORM/$PLATFORM_CONF -t /usr/share/sonic/hwsku/buffers.json.j2 > /tmp/buffers.json + fi + if [ -f /usr/share/sonic/hwsku/qos.json.j2 ]; then + sonic-cfggen -j /etc/sonic/init_cfg.json -t /usr/share/sonic/hwsku/qos.json.j2 > /tmp/qos.json + fi + + sonic-cfggen -p /usr/share/sonic/device/$PLATFORM/$PLATFORM_CONF -k $HWSKU --print-data > /tmp/ports.json # change admin_status from up to down; Test cases dependent sed -i "s/up/down/g" /tmp/ports.json sonic-cfggen -j /etc/sonic/init_cfg.json -j /tmp/buffers.json -j /tmp/qos.json -j /tmp/ports.json --print-data > /etc/sonic/config_db.json @@ -56,6 +66,8 @@ sonic-cfggen -t /usr/share/sonic/templates/copp_cfg.j2 > /etc/sonic/copp_cfg.jso if [ "$HWSKU" == "Mellanox-SN2700" ]; then cp /usr/share/sonic/hwsku/sai_mlnx.profile /usr/share/sonic/hwsku/sai.profile +elif [ "$HWSKU" == "NPU" ]; then + cp /usr/share/sonic/hwsku/sai_npu.profile /usr/share/sonic/hwsku/sai.profile fi mkdir -p /etc/swss/config.d/ diff --git a/rules/docker-database.mk b/rules/docker-database.mk index b66583b9bd2c..a10609933c35 100644 --- a/rules/docker-database.mk +++ b/rules/docker-database.mk @@ -27,6 +27,7 @@ SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_DATABASE_DBG) $(DOCKER_DATABASE)_CONTAINER_NAME = database $(DOCKER_DATABASE)_RUN_OPT += --privileged -t $(DOCKER_DATABASE)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_DATABASE)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_DATABASE)_BASE_IMAGE_FILES += redis-cli:/usr/bin/redis-cli $(DOCKER_DATABASE)_FILES += $(SYSCTL_NET_CONFIG) $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) diff --git a/rules/docker-dhcp-relay.mk b/rules/docker-dhcp-relay.mk index c26995ad143b..f5d58f2de45b 100644 --- a/rules/docker-dhcp-relay.mk +++ b/rules/docker-dhcp-relay.mk @@ -47,6 +47,7 @@ endif $(DOCKER_DHCP_RELAY)_CONTAINER_NAME = dhcp_relay $(DOCKER_DHCP_RELAY)_CONTAINER_PRIVILEGED = true $(DOCKER_DHCP_RELAY)_CONTAINER_VOLUMES += /etc/sonic:/etc/sonic:ro +$(DOCKER_DHCP_RELAY)_CONTAINER_VOLUMES += /etc/timezone:/etc/timezone:ro $(DOCKER_DHCP_RELAY)_CONTAINER_VOLUMES += /usr/share/sonic/scripts:/usr/share/sonic/scripts:ro $(DOCKER_DHCP_RELAY)_CONTAINER_TMPFS += /tmp/ $(DOCKER_DHCP_RELAY)_CONTAINER_TMPFS += /var/tmp/ diff --git a/rules/docker-eventd.mk b/rules/docker-eventd.mk index 304f295e2a4b..367b0abecccd 100644 --- a/rules/docker-eventd.mk +++ b/rules/docker-eventd.mk @@ -33,6 +33,7 @@ SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_EVENTD_DBG) $(DOCKER_EVENTD)_CONTAINER_NAME = eventd $(DOCKER_EVENTD)_RUN_OPT += --privileged -t $(DOCKER_EVENTD)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_EVENTD)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro SONIC_BULLSEYE_DOCKERS += $(DOCKER_EVENTD) SONIC_BULLSEYE_DBG_DOCKERS += $(DOCKER_EVENTD_DBG) diff --git a/rules/docker-fpm-frr.mk b/rules/docker-fpm-frr.mk index 59d645362886..13e8d346fca5 100644 --- a/rules/docker-fpm-frr.mk +++ b/rules/docker-fpm-frr.mk @@ -30,6 +30,7 @@ SONIC_DOCKER_DBG_IMAGES += $(DOCKER_FPM_FRR_DBG) $(DOCKER_FPM_FRR)_CONTAINER_NAME = bgp $(DOCKER_FPM_FRR)_RUN_OPT += --privileged -t $(DOCKER_FPM_FRR)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_FPM_FRR)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_FPM_FRR)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) diff --git a/rules/docker-iccpd.mk b/rules/docker-iccpd.mk index eb58ee755cdc..e9f280499847 100644 --- a/rules/docker-iccpd.mk +++ b/rules/docker-iccpd.mk @@ -23,6 +23,7 @@ endif $(DOCKER_ICCPD)_CONTAINER_NAME = iccpd $(DOCKER_ICCPD)_RUN_OPT += --privileged -t $(DOCKER_ICCPD)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_ICCPD)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_ICCPD)_BASE_IMAGE_FILES += mclagdctl:/usr/bin/mclagdctl diff --git a/rules/docker-lldp.mk b/rules/docker-lldp.mk index b2e7b350f3bb..9f6a4d2e711d 100644 --- a/rules/docker-lldp.mk +++ b/rules/docker-lldp.mk @@ -30,6 +30,7 @@ SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_LLDP_DBG) $(DOCKER_LLDP)_CONTAINER_NAME = lldp $(DOCKER_LLDP)_RUN_OPT += --privileged -t $(DOCKER_LLDP)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_LLDP)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_LLDP)_RUN_OPT += -v /usr/share/sonic/scripts:/usr/share/sonic/scripts:ro $(DOCKER_LLDP)_BASE_IMAGE_FILES += lldpctl:/usr/bin/lldpctl diff --git a/rules/docker-macsec.mk b/rules/docker-macsec.mk index d4cce3ecfcb7..49f80133b9bd 100644 --- a/rules/docker-macsec.mk +++ b/rules/docker-macsec.mk @@ -40,6 +40,7 @@ $(DOCKER_MACSEC)_VERSION = 1.0.0 $(DOCKER_MACSEC)_PACKAGE_NAME = macsec $(DOCKER_MACSEC)_RUN_OPT += --privileged -t $(DOCKER_MACSEC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_MACSEC)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_MACSEC)_RUN_OPT += -v /host/warmboot:/var/warmboot $(DOCKER_MACSEC)_SERVICE_REQUIRES = updategraph diff --git a/rules/docker-mux.mk b/rules/docker-mux.mk index cbdc1c06510d..2f9f93a9b890 100644 --- a/rules/docker-mux.mk +++ b/rules/docker-mux.mk @@ -32,4 +32,5 @@ endif $(DOCKER_MUX)_CONTAINER_NAME = mux $(DOCKER_MUX)_RUN_OPT += --privileged -t $(DOCKER_MUX)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_MUX)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_MUX)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) diff --git a/rules/docker-nat.mk b/rules/docker-nat.mk index 3d2f2b011968..f4022547ffef 100644 --- a/rules/docker-nat.mk +++ b/rules/docker-nat.mk @@ -31,6 +31,7 @@ endif $(DOCKER_NAT)_CONTAINER_NAME = nat $(DOCKER_NAT)_RUN_OPT += --privileged -t $(DOCKER_NAT)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_NAT)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_NAT)_RUN_OPT += -v /host/warmboot:/var/warmboot $(DOCKER_NAT)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) diff --git a/rules/docker-orchagent.mk b/rules/docker-orchagent.mk index eae484ccc5f7..1e877aef4bdc 100644 --- a/rules/docker-orchagent.mk +++ b/rules/docker-orchagent.mk @@ -37,6 +37,7 @@ SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_ORCHAGENT_DBG) $(DOCKER_ORCHAGENT)_CONTAINER_NAME = swss $(DOCKER_ORCHAGENT)_RUN_OPT += --privileged -t $(DOCKER_ORCHAGENT)_RUN_OPT += -v /etc/network/interfaces:/etc/network/interfaces:ro +$(DOCKER_ORCHAGENT)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_ORCHAGENT)_RUN_OPT += -v /etc/network/interfaces.d/:/etc/network/interfaces.d/:ro $(DOCKER_ORCHAGENT)_RUN_OPT += -v /host/machine.conf:/host/machine.conf:ro $(DOCKER_ORCHAGENT)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro diff --git a/rules/docker-p4rt.mk b/rules/docker-p4rt.mk index 172346742ce1..865bf9fee861 100644 --- a/rules/docker-p4rt.mk +++ b/rules/docker-p4rt.mk @@ -31,6 +31,7 @@ endif $(DOCKER_P4RT)_CONTAINER_NAME = p4rt $(DOCKER_P4RT)_RUN_OPT += --privileged -t $(DOCKER_P4RT)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_P4RT)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_P4RT)_GIT_COMMIT = $(shell cd "$($(SONIC_P4RT)_SRC_PATH)" && git log -n 1 --format=format:"%H %s" || echo "Unable to fetch git log for p4rt") $(DOCKER_P4RT)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) diff --git a/rules/docker-platform-monitor.mk b/rules/docker-platform-monitor.mk index a87a30247337..daa19336fb6f 100644 --- a/rules/docker-platform-monitor.mk +++ b/rules/docker-platform-monitor.mk @@ -50,6 +50,7 @@ SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_PLATFORM_MONITOR_DBG) $(DOCKER_PLATFORM_MONITOR)_CONTAINER_NAME = pmon $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += --privileged -t $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /usr/share/sonic/scripts:/usr/share/sonic/scripts:ro $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /var/run/platform_cache:/var/run/platform_cache:ro $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /usr/share/sonic/device/pddf:/usr/share/sonic/device/pddf:ro diff --git a/rules/docker-router-advertiser.mk b/rules/docker-router-advertiser.mk index 255ca00c01c7..e3f561be93dc 100644 --- a/rules/docker-router-advertiser.mk +++ b/rules/docker-router-advertiser.mk @@ -31,5 +31,6 @@ endif $(DOCKER_ROUTER_ADVERTISER)_CONTAINER_NAME = radv $(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += --privileged -t $(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += -v /usr/share/sonic/scripts:/usr/share/sonic/scripts:ro $(DOCKER_ROUTER_ADVERTISER)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) diff --git a/rules/docker-sflow.mk b/rules/docker-sflow.mk index 285264dcb0b1..c5ca661f72c1 100644 --- a/rules/docker-sflow.mk +++ b/rules/docker-sflow.mk @@ -31,6 +31,7 @@ endif $(DOCKER_SFLOW)_CONTAINER_NAME = sflow $(DOCKER_SFLOW)_RUN_OPT += --privileged -t $(DOCKER_SFLOW)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_SFLOW)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_SFLOW)_RUN_OPT += -v /host/warmboot:/var/warmboot $(DOCKER_SFLOW)_BASE_IMAGE_FILES += psample:/usr/bin/psample diff --git a/rules/docker-snmp.mk b/rules/docker-snmp.mk index 037d58936170..085eadf7eab3 100644 --- a/rules/docker-snmp.mk +++ b/rules/docker-snmp.mk @@ -30,6 +30,7 @@ SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_SNMP_DBG) $(DOCKER_SNMP)_CONTAINER_NAME = snmp $(DOCKER_SNMP)_RUN_OPT += --privileged -t $(DOCKER_SNMP)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_SNMP)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_SNMP)_RUN_OPT += -v /usr/share/sonic/scripts:/usr/share/sonic/scripts:ro $(DOCKER_SNMP)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) $(DOCKER_SNMP)_BASE_IMAGE_FILES += monit_snmp:/etc/monit/conf.d diff --git a/rules/docker-sonic-mgmt-framework.mk b/rules/docker-sonic-mgmt-framework.mk index b0986e12d14e..7985f8e9be9d 100644 --- a/rules/docker-sonic-mgmt-framework.mk +++ b/rules/docker-sonic-mgmt-framework.mk @@ -31,6 +31,7 @@ endif $(DOCKER_MGMT_FRAMEWORK)_CONTAINER_NAME = mgmt-framework $(DOCKER_MGMT_FRAMEWORK)_RUN_OPT += --privileged -t $(DOCKER_MGMT_FRAMEWORK)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_MGMT_FRAMEWORK)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_MGMT_FRAMEWORK)_RUN_OPT += -v /etc:/host_etc:ro $(DOCKER_MGMT_FRAMEWORK)_RUN_OPT += -v /var/run/dbus:/var/run/dbus:rw $(DOCKER_MGMT_FRAMEWORK)_RUN_OPT += --mount type=bind,source="/var/platform/",target="/mnt/platform/" diff --git a/rules/docker-teamd.mk b/rules/docker-teamd.mk index 8d92cd2533f4..ae5cc838450d 100644 --- a/rules/docker-teamd.mk +++ b/rules/docker-teamd.mk @@ -35,6 +35,7 @@ endif $(DOCKER_TEAMD)_CONTAINER_NAME = teamd $(DOCKER_TEAMD)_RUN_OPT += --privileged -t $(DOCKER_TEAMD)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_TEAMD)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_TEAMD)_RUN_OPT += -v /host/warmboot:/var/warmboot $(DOCKER_TEAMD)_BASE_IMAGE_FILES += teamdctl:/usr/bin/teamdctl diff --git a/rules/docker-telemetry.mk b/rules/docker-telemetry.mk index 30e11d925195..5b66ff588b64 100644 --- a/rules/docker-telemetry.mk +++ b/rules/docker-telemetry.mk @@ -30,6 +30,7 @@ endif $(DOCKER_TELEMETRY)_CONTAINER_NAME = telemetry $(DOCKER_TELEMETRY)_RUN_OPT += --privileged -t $(DOCKER_TELEMETRY)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro +$(DOCKER_TELEMETRY)_RUN_OPT += -v /etc/timezone:/etc/timezone:ro $(DOCKER_TELEMETRY)_RUN_OPT += -v /usr/share/sonic/scripts:/usr/share/sonic/scripts:ro ifneq ($(INCLUDE_SYSTEM_GNMI), y) $(DOCKER_TELEMETRY)_RUN_OPT += -v /var/run/dbus:/var/run/dbus:rw diff --git a/scripts/sign_image_dev.sh b/scripts/sign_image_dev.sh new file mode 100755 index 000000000000..668672f49378 --- /dev/null +++ b/scripts/sign_image_dev.sh @@ -0,0 +1,11 @@ +cert_file=$1 +key_file=$2 +image_to_sign=$3 +cms_sig_out=$4 +openssl cms -sign -nosmimecap -signer ${cert_file} -inkey ${key_file} -binary -in $image_to_sign -outform pem -out ${cms_sig_out} || { + echo "$?: CMS sign error" + sudo rm -rf ${cms_sig_out} + exit 1 +} +echo "CMS sign OK" +exit 0 diff --git a/src/dhcpmon b/src/dhcpmon index 3c16c8c4ded2..824a1448b9cb 160000 --- a/src/dhcpmon +++ b/src/dhcpmon @@ -1 +1 @@ -Subproject commit 3c16c8c4ded29c193695d0acc7693f9cada3dfcb +Subproject commit 824a1448b9cbe685664f94c25aa00c37e3e3c058 diff --git a/src/sonic-config-engine/minigraph.py b/src/sonic-config-engine/minigraph.py index 0f883773f776..5bb7a23c82ad 100644 --- a/src/sonic-config-engine/minigraph.py +++ b/src/sonic-config-engine/minigraph.py @@ -994,6 +994,7 @@ def parse_meta(meta, hname): dhcp_servers = [] dhcpv6_servers = [] ntp_servers = [] + dns_nameservers = [] tacacs_servers = [] mgmt_routes = [] erspan_dst = [] @@ -1024,6 +1025,8 @@ def parse_meta(meta, hname): dhcp_servers = value_group elif name == "NtpResources": ntp_servers = value_group + elif name == "DnsNameserverResources": + dns_nameservers = value_group elif name == "SyslogResources": syslog_servers = value_group elif name == "TacacsServer": @@ -1063,7 +1066,7 @@ def parse_meta(meta, hname): qos_profile = value elif name == "RackMgmtMap": rack_mgmt_map = value - return syslog_servers, dhcp_servers, dhcpv6_servers, ntp_servers, tacacs_servers, mgmt_routes, erspan_dst, deployment_id, region, cloudtype, resource_type, downstream_subrole, switch_id, switch_type, max_cores, kube_data, macsec_profile, downstream_redundancy_types, redundancy_type, qos_profile, rack_mgmt_map + return syslog_servers, dhcp_servers, dhcpv6_servers, ntp_servers, dns_nameservers, tacacs_servers, mgmt_routes, erspan_dst, deployment_id, region, cloudtype, resource_type, downstream_subrole, switch_id, switch_type, max_cores, kube_data, macsec_profile, downstream_redundancy_types, redundancy_type, qos_profile, rack_mgmt_map def parse_linkmeta(meta, hname): @@ -1490,6 +1493,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw dhcp_servers = [] dhcpv6_servers = [] ntp_servers = [] + dns_nameservers = [] tacacs_servers = [] mgmt_routes = [] erspan_dst = [] @@ -1545,7 +1549,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw elif child.tag == str(QName(ns, "UngDec")): (u_neighbors, u_devices, _, _, _, _, _, _) = parse_png(child, hostname, None) elif child.tag == str(QName(ns, "MetadataDeclaration")): - (syslog_servers, dhcp_servers, dhcpv6_servers, ntp_servers, tacacs_servers, mgmt_routes, erspan_dst, deployment_id, region, cloudtype, resource_type, downstream_subrole, switch_id, switch_type, max_cores, kube_data, macsec_profile, downstream_redundancy_types, redundancy_type, qos_profile, rack_mgmt_map) = parse_meta(child, hostname) + (syslog_servers, dhcp_servers, dhcpv6_servers, ntp_servers, dns_nameservers, tacacs_servers, mgmt_routes, erspan_dst, deployment_id, region, cloudtype, resource_type, downstream_subrole, switch_id, switch_type, max_cores, kube_data, macsec_profile, downstream_redundancy_types, redundancy_type, qos_profile, rack_mgmt_map) = parse_meta(child, hostname) elif child.tag == str(QName(ns, "LinkMetadataDeclaration")): linkmetas = parse_linkmeta(child, hostname) elif child.tag == str(QName(ns, "DeviceInfos")): @@ -1997,6 +2001,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw results['DHCP_SERVER'] = dict((item, {}) for item in dhcp_servers) results['DHCP_RELAY'] = dhcp_relay_table results['NTP_SERVER'] = dict((item, {}) for item in ntp_servers) + results['DNS_NAMESERVER'] = dict((item, {}) for item in dns_nameservers) results['TACPLUS_SERVER'] = dict((item, {'priority': '1', 'tcp_port': '49'}) for item in tacacs_servers) if len(acl_table_types) > 0: results['ACL_TABLE_TYPE'] = acl_table_types diff --git a/src/sonic-config-engine/tests/data/dns/resolv.conf b/src/sonic-config-engine/tests/data/dns/resolv.conf new file mode 100644 index 000000000000..b90cade8f92d --- /dev/null +++ b/src/sonic-config-engine/tests/data/dns/resolv.conf @@ -0,0 +1,3 @@ +nameserver 1.1.1.1 +nameserver 2001:4860:4860::8888 + diff --git a/src/sonic-config-engine/tests/data/dns/static_dns.json b/src/sonic-config-engine/tests/data/dns/static_dns.json new file mode 100644 index 000000000000..0d2cf1804317 --- /dev/null +++ b/src/sonic-config-engine/tests/data/dns/static_dns.json @@ -0,0 +1,6 @@ +{ + "DNS_NAMESERVER": { + "1.1.1.1": {}, + "2001:4860:4860::8888": {} + } +} diff --git a/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph.xml b/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph.xml index be3938f24bc4..0adcec5c8420 100644 --- a/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph.xml +++ b/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph.xml @@ -1425,6 +1425,11 @@ 17.39.1.129;17.39.1.130 + + DnsNameserverResources + + 1.1.1.1;8.8.8.8 + SnmpResources diff --git a/src/sonic-config-engine/tests/simple-sample-graph-case.xml b/src/sonic-config-engine/tests/simple-sample-graph-case.xml index 69b27c33e7b4..7e8f1579cdf4 100644 --- a/src/sonic-config-engine/tests/simple-sample-graph-case.xml +++ b/src/sonic-config-engine/tests/simple-sample-graph-case.xml @@ -500,6 +500,12 @@ 10.0.10.1;10.0.10.2 + + DnsNameserverResources + + 1.1.1.1;8.8.8.8 + + SnmpResources diff --git a/src/sonic-config-engine/tests/simple-sample-graph-metadata.xml b/src/sonic-config-engine/tests/simple-sample-graph-metadata.xml index fbc33b49862a..c841ff8d1a9f 100644 --- a/src/sonic-config-engine/tests/simple-sample-graph-metadata.xml +++ b/src/sonic-config-engine/tests/simple-sample-graph-metadata.xml @@ -236,6 +236,12 @@ 10.0.10.1;10.0.10.2 + + DnsNameserverResources + + 20.2.2.2;30.3.3.3 + + SnmpResources diff --git a/src/sonic-config-engine/tests/test_cfggen.py b/src/sonic-config-engine/tests/test_cfggen.py index c1b22995ca5c..8f8eba759ca8 100644 --- a/src/sonic-config-engine/tests/test_cfggen.py +++ b/src/sonic-config-engine/tests/test_cfggen.py @@ -697,6 +697,11 @@ def test_metadata_ntp(self): output = self.run_script(argument) self.assertEqual(utils.to_dict(output.strip()), utils.to_dict("{'10.0.10.1': {}, '10.0.10.2': {}}")) + def test_metadata_dns_nameserver(self): + argument = ['-m', self.sample_graph_metadata, '-p', self.port_config, '-v', "DNS_NAMESERVER"] + output = self.run_script(argument) + self.assertEqual(utils.to_dict(output.strip()), utils.to_dict("{'20.2.2.2': {}, '30.3.3.3': {}}")) + def test_minigraph_vnet(self, **kwargs): graph_file = kwargs.get('graph_file', self.sample_graph_simple) argument = ['-m', graph_file, '-p', self.port_config, '-v', "VNET"] diff --git a/src/sonic-config-engine/tests/test_j2files.py b/src/sonic-config-engine/tests/test_j2files.py index 59264a2e0c31..225246aa1e81 100644 --- a/src/sonic-config-engine/tests/test_j2files.py +++ b/src/sonic-config-engine/tests/test_j2files.py @@ -695,6 +695,14 @@ def test_backend_acl_template_render(self): self.run_script(argument, output_file=self.output_file) assert utils.cmp(sample_output_file, self.output_file), self.run_diff(sample_output_file, self.output_file) + def test_dns_template_render(self): + conf_template = os.path.join(self.test_dir, '..', '..', '..', 'files', 'image_config', 'resolv-config', 'resolv.conf.j2') + static_dns_conf = os.path.join(self.test_dir, "data", "dns", "static_dns.json") + expected = os.path.join(self.test_dir, "data", "dns", "resolv.conf") + + argument = ['-j', static_dns_conf, '-t', conf_template] + self.run_script(argument, output_file=self.output_file) + assert utils.cmp(expected, self.output_file), self.run_diff(expected, self.output_file) def test_buffers_edgezone_aggregator_render_template(self): self._test_buffers_render_template('arista', 'x86_64-arista_7060_cx32s', 'Arista-7060CX-32S-D48C8', 'sample-arista-7060-t0-minigraph.xml', 'buffers.json.j2', 'buffer-arista7060-t0.json') diff --git a/src/sonic-config-engine/tests/test_minigraph_case.py b/src/sonic-config-engine/tests/test_minigraph_case.py index 826c92f44ed8..b9617fb7dce2 100644 --- a/src/sonic-config-engine/tests/test_minigraph_case.py +++ b/src/sonic-config-engine/tests/test_minigraph_case.py @@ -276,6 +276,11 @@ def test_metadata_ntp(self): output = self.run_script(argument) self.assertEqual(output.strip(), "{'10.0.10.1': {}, '10.0.10.2': {}}") + def test_metadata_dns_nameserver(self): + argument = ['-m', self.sample_graph, '-p', self.port_config, '-v', "DNS_NAMESERVER"] + output = self.run_script(argument) + self.assertEqual(output.strip(), "{'1.1.1.1': {}, '8.8.8.8': {}}") + def test_minigraph_vnet(self): argument = ['-m', self.sample_graph, '-p', self.port_config, '-v', "VNET"] output = self.run_script(argument) diff --git a/src/sonic-config-engine/tests/test_multinpu_cfggen.py b/src/sonic-config-engine/tests/test_multinpu_cfggen.py index bc4227f85d52..7026dfa84a61 100644 --- a/src/sonic-config-engine/tests/test_multinpu_cfggen.py +++ b/src/sonic-config-engine/tests/test_multinpu_cfggen.py @@ -150,6 +150,17 @@ def test_metadata_ntp(self): print("Log:asic{} sku {}".format(asic,output)) self.assertDictEqual(output, {}) + def test_metadata_dns_nameserver(self): + argument = ['-m', self.sample_graph, '-p', self.sample_port_config, '--var-json', "DNS_NAMESERVER"] + output = json.loads(self.run_script(argument)) + self.assertDictEqual(output, {'1.1.1.1': {}, '8.8.8.8': {}}) + #DNS_NAMESERVER data is present only in the host config + argument = ['-m', self.sample_graph, '--var-json', "DNS_NAMESERVER"] + for asic in range(NUM_ASIC): + output = json.loads(self.run_script_for_asic(argument, asic, self.port_config[asic])) + print("Log:asic{} sku {}".format(asic,output)) + self.assertDictEqual(output, {}) + def test_mgmt_port(self): argument = ['-m', self.sample_graph, '-p', self.sample_port_config, '--var-json', "MGMT_PORT"] output = json.loads(self.run_script(argument)) diff --git a/src/sonic-host-services b/src/sonic-host-services index 508d642f5866..eab4a9ee30be 160000 --- a/src/sonic-host-services +++ b/src/sonic-host-services @@ -1 +1 @@ -Subproject commit 508d642f58665dd1925fe2a1eb6e9d7b368c7dda +Subproject commit eab4a9ee30be81da70d38f1320c37caef261e7e3 diff --git a/src/sonic-pit/pit-sysdiag/cases/cpu_tc/config.json b/src/sonic-pit/pit-sysdiag/cases/cpu_tc/config.json new file mode 100644 index 000000000000..b17842944328 --- /dev/null +++ b/src/sonic-pit/pit-sysdiag/cases/cpu_tc/config.json @@ -0,0 +1,6 @@ +{ + "name": "cpu-test", + "description": "Check CPU information", + "type": "auto", + "tags": ["manufacture", "delivery", "pa", "power", "emc"] +} diff --git a/src/sonic-pit/pit-sysdiag/cases/memory_tc/config.json b/src/sonic-pit/pit-sysdiag/cases/memory_tc/config.json new file mode 100644 index 000000000000..f079c826a1c8 --- /dev/null +++ b/src/sonic-pit/pit-sysdiag/cases/memory_tc/config.json @@ -0,0 +1,6 @@ +{ + "name": "memory-test", + "description": "Check memory and pattern test", + "type": "auto", + "tags": ["manufacture", "delivery", "pa", "power", "emc"] +} diff --git a/src/sonic-pit/pit-sysdiag/cases/oob_tc/config.json b/src/sonic-pit/pit-sysdiag/cases/oob_tc/config.json new file mode 100644 index 000000000000..a16c01512d35 --- /dev/null +++ b/src/sonic-pit/pit-sysdiag/cases/oob_tc/config.json @@ -0,0 +1,6 @@ +{ + "name": "oob-test", + "description": "l2 mgmt switch test", + "type": "auto", + "tags": ["manufacture", "delivery", "pa"] +} diff --git a/src/sonic-pit/pit-sysdiag/cases/rtc_tc/config.json b/src/sonic-pit/pit-sysdiag/cases/rtc_tc/config.json new file mode 100644 index 000000000000..baa81c1841fe --- /dev/null +++ b/src/sonic-pit/pit-sysdiag/cases/rtc_tc/config.json @@ -0,0 +1,6 @@ +{ + "name": "rtc-test", + "description": "Check RTC function", + "type": "auto", + "tags": ["manufacture", "delivery", "pa", "emc"] +} diff --git a/src/sonic-pit/pit-sysdiag/cases/sensor_tc/config.json b/src/sonic-pit/pit-sysdiag/cases/sensor_tc/config.json new file mode 100644 index 000000000000..9da2d1d588dc --- /dev/null +++ b/src/sonic-pit/pit-sysdiag/cases/sensor_tc/config.json @@ -0,0 +1,6 @@ +{ + "name": "sensor-test", + "description": "Check sensors health", + "type": "auto", + "tags": ["manufacture", "delivery", "pa", "power", "emc"] +} diff --git a/src/sonic-pit/pit-sysdiag/cases/ssd_tc/config.json b/src/sonic-pit/pit-sysdiag/cases/ssd_tc/config.json new file mode 100644 index 000000000000..a7f83ca9694a --- /dev/null +++ b/src/sonic-pit/pit-sysdiag/cases/ssd_tc/config.json @@ -0,0 +1,6 @@ +{ + "name": "ssd-test", + "description": "Check SSD capacity", + "type": "auto", + "tags": ["manufacture", "delivery", "pa", "emc", "power"] +} diff --git a/src/sonic-pit/pit-sysdiag/config/platform/x86_64-alibaba_as14-40d-cl-r0/case_config.json b/src/sonic-pit/pit-sysdiag/config/platform/x86_64-alibaba_as14-40d-cl-r0/case_config.json new file mode 100644 index 000000000000..00e765bf6f8f --- /dev/null +++ b/src/sonic-pit/pit-sysdiag/config/platform/x86_64-alibaba_as14-40d-cl-r0/case_config.json @@ -0,0 +1,52 @@ +{ + "fan_info":{ + "position": "bmc", + "count": 6, + "direction": "in", + "ratio_target": [10, 80, 20], + "speed_tolerance": 1000, + "speed_max": 20000, + "speed_min": 0, + "motor_count": 2 + }, + "psu_info":{ + "position": "bmc", + "count": 2, + "in_power_min": 0, + "in_power_max": 0, + "in_vol_min": 0, + "in_vol_max": 0, + "in_curr_min": 0, + "in_curr_max": 0, + "out_power_min": 0, + "out_power_max": 0, + "out_vol_min": 0, + "out_vol_max": 0, + "out_curr_min": 0, + "out_curr_max": 0 + }, + "cpu_info": { + "Model name": "Intel(R) Xeon(R) CPU D-1533N @ 2.10GHz", + "BogoMIPS": 4189.0, + "CPU(s)": 6, + "CPU MHz": 2100.0 + }, + "memory_free_size": 100, + "rtc_info":{ + "delay_time": 5, + "max_time_diff": 1 + }, + "ssd_test_size": "100M", + "ssd_bom": [ + { + "model": "AF2MA31DTDLT240A", + "size": "240 GB" + }, + { + "model": "MTFDDAV240TDS", + "size": "240 GB" + } + ], + "server_ip": "192.0.0.3", + "bmc_ip": "240.1.1.1" +} diff --git a/src/sonic-pit/pit-sysdiag/config/platform/x86_64-alibaba_as14-40d-cl-r0/platform_config.json b/src/sonic-pit/pit-sysdiag/config/platform/x86_64-alibaba_as14-40d-cl-r0/platform_config.json new file mode 100644 index 000000000000..7e3768d00daf --- /dev/null +++ b/src/sonic-pit/pit-sysdiag/config/platform/x86_64-alibaba_as14-40d-cl-r0/platform_config.json @@ -0,0 +1,10 @@ +{ + "test_cases": [ + "fan_tc", + "psu_tc", + "cpu_tc", + "memory_tc", + "rtc_tc", + "sensor_tc" + ] +} diff --git a/src/sonic-pit/pit-sysdiag/src/cpu_tc.py b/src/sonic-pit/pit-sysdiag/src/cpu_tc.py new file mode 100644 index 000000000000..f7f3e139232a --- /dev/null +++ b/src/sonic-pit/pit-sysdiag/src/cpu_tc.py @@ -0,0 +1,107 @@ +from function import run_command +from test_case import TestCaseCommon +from errcode import E +import traceback + + +# CPU test class +class CPUTC(TestCaseCommon): + def __init__(self, index, logger, platform_cfg_file, case_cfg_file=None): + MODULE_NAME = "cpu_tc" + TestCaseCommon.__init__(self, index, MODULE_NAME, logger, platform_cfg_file, case_cfg_file) + self.cpu_info_dict = None + try: + if self.platform_cfg_json and 'cpu_info' in self.platform_cfg_json.keys(): + self.cpu_info_dict = self.platform_cfg_json['cpu_info'] + except Exception as e: + self.logger.log_err(str(e), True) + self.logger.log_err(traceback.format_exc()) + + def test_cpu_info(self, also_print_console=False): + ret = E.OK + self.logger.log_info("check_cpu_info start", also_print_console) + + cmd = "lscpu | head -n25" + status, log = run_command(cmd) + if status != 0 or len(log) <= 0: + reason = "Failed, get cpu info failed, command {}, status {}, log {}".format( \ + cmd, status, log) + self.log_reason(reason) + ret = E.ECPU3005 + else: + lines = log.splitlines() + expected_cpu_model = self.cpu_info_dict.get('Model name') + expected_bogomips = self.cpu_info_dict.get('BogoMIPS') + expected_cpu_num = self.cpu_info_dict.get('CPU(s)') + expected_cpu_mhz = self.cpu_info_dict.get('CPU MHz') + self.logger.log_dbg("Expected value: {}, {}, {}, {}".format(expected_cpu_model, \ + expected_bogomips, expected_cpu_num, expected_cpu_mhz)) + for line in lines: + cols = line.strip().split(":") + if len(cols) < 2: + continue + + if expected_cpu_model and cols[0] == "Model name": + if cols[1].strip() != expected_cpu_model: + reason = "Failed, CPU model name {}(expected {})".format( \ + cols[1].strip(), expected_cpu_model) + self.log_reason(reason) + ret = E.ECPU3001 + else: + msg = "Model name {} =======> OK".format(cols[1].strip()) + self.logger.log_info(msg) + + if expected_bogomips and cols[0] == 'BogoMIPS': + read_bogomips = float(cols[1].strip()) + conf_bogomips = float(expected_bogomips) + if read_bogomips <= (conf_bogomips * 0.99) or \ + read_bogomips >= conf_bogomips * 1.01: + reason = "Failed, BogoMIPS {}(expected {})".format( \ + read_bogomips, expected_bogomips) + self.log_reason(reason) + ret = E.ECPU3001 + else: + msg = "BogoMIPS {} ===== OK".format(read_bogomips) + self.logger.log_info(msg) + + if expected_cpu_num and cols[0] == 'CPU(s)': + num_cpus = int(cols[1].strip()) + if num_cpus != self.cpu_info_dict.get('CPU(s)'): + reason = "Failed, CPU number {}(expected {})".format( \ + num_cpus, expected_cpu_num) + self.fail_reason.append(reason) + ret = E.ECPU3001 + else: + msg = "Number of CPUs {} ===== OK".format(num_cpus) + self.logger.log_info(msg) + + if expected_cpu_mhz and cols[0] == 'CPU MHz': + read_cpu_mhz = float(cols[1].strip()) + conf_cpu_mhz = float(expected_cpu_mhz) + if read_cpu_mhz <= (conf_cpu_mhz * 0.99) or \ + read_cpu_mhz >= (conf_cpu_mhz * 1.01): + reason = "Failed, CPU MHz {}(expected {})".format( \ + read_cpu_mhz, expected_cpu_mhz) + self.log_reason(reason) + ret = E.ECPU3001 + else: + msg = "CPU frequency {} ===== OK".format(read_cpu_mhz) + self.logger.log_info(msg) + + if ret != E.OK: + self.logger.log_err("test cpu info done, FAILED.", also_print_console) + else: + self.logger.log_info("test cpu info done, PASS.", also_print_console) + + return ret + + def run_test(self, *argv): + try: + ret = self.test_cpu_info(True) + return ret + except Exception as e: + self.logger.log_err("test cpu info got exception: {}".format(str(e))) + self.logger.log_err(traceback.format_exc()) + return ret + + return E.OK diff --git a/src/sonic-pit/pit-sysdiag/src/memory_tc.py b/src/sonic-pit/pit-sysdiag/src/memory_tc.py new file mode 100644 index 000000000000..6e44685b56a8 --- /dev/null +++ b/src/sonic-pit/pit-sysdiag/src/memory_tc.py @@ -0,0 +1,188 @@ +from function import run_command +from test_case import TestCaseCommon +from errcode import E +import traceback + + +X86_ARCH_LIST = ["x86", "x86_64", "amd", "amd64"] +ARM_ARCH_LIST = ["arm", "arm64"] + + +# memory test class +class MEMORYTC(TestCaseCommon): + def __init__(self, index, logger, platform_cfg_file, case_cfg_file=None): + MODULE_NAME = "memory_tc" + TestCaseCommon.__init__(self, index, MODULE_NAME, logger, platform_cfg_file, case_cfg_file) + self.arch = "x86" # default arch + self.memory_bom_list = None # default conf + self.free_mem_size = 100 # free memory size in kB. if free mem is less than free_mem_size, fail. + try: + if self.platform_cfg_json and 'memory_bom' in self.platform_cfg_json.keys(): + self.memory_bom_list = self.platform_cfg_json['memory_bom'] + if self.platform_cfg_json and 'arch' in self.platform_cfg_json.keys(): + self.arch = self.platform_cfg_json['arch'] + if self.platform_cfg_json and 'memory_free_size' in self.platform_cfg_json.keys(): + self.free_mem_size = int(self.platform_cfg_json['memory_free_size']) + except Exception as e: + self.logger.log_err(str(e), True) + + def _memory_info_check_by_dmidecode(self): + ret = E.OK + pn_list = [] + vendor_list = [] + + status, out = run_command("dmidecode -t 17") + if status != 0 or len(out) <= 0: + self.fail_reason.append("dmidecode exec failed.") + ret = E.EMEM4001 + else: + for item in out.splitlines(): + self.logger.log_info(item) + if ":" in item: + key = item.split(":")[0].strip() + value = item.split(":")[1].strip() + if key == 'Part Number' and value != 'NO DIMM': + pn_list.append(value) + if key == 'Manufacturer' and value != 'NO DIMM': + vendor_list.append(value) + + # memory bom check + if self.memory_bom_list: + memory_matched = False + for memory_bom in self.memory_bom_list: + if memory_bom["manufacturer"] in vendor_list and memory_bom["pn"] in pn_list: + memory_matched = True + break + if not memory_matched: + ret = E.EMEM4001 + self.fail_reason.append("memory not matched") + + return ret + + def _arm_memory_ecc_check(self): + return E.OK + + def _x86_memory_ecc_check(self): + status, out = run_command("edac-util -v") + self.logger.log_info(out) + if status: + self.fail_reason.append("memort ecc occured") + return E.EMEM4003 + else: + return E.OK + + def test_memory_info(self): + self.logger.log_info("test memory info start") + + if self.arch in X86_ARCH_LIST: + ret = self._memory_info_check_by_dmidecode() + elif self.arch in ARM_ARCH_LIST: + ret = E.OK + + if ret != E.OK: + self.logger.log_err("test memory info done, FAILED.") + else: + self.logger.log_err("test memory info done, PASS.") + + return ret + + def test_memory_capacity(self): + self.logger.log_info("test memory capacity start") + ret = E.OK + status, out = run_command("free -t") + self.logger.log_info(out) + if status: + self.log_reason("exec failed, cmd: free -t") + ret = E.EIO + else: + for line in out.splitlines(): + if line.find("Total") >= 0: + free_mem = line.split()[3] + if int(free_mem) < self.free_mem_size: + self.log_reason("free memory less than {}kB".format(self.free_mem_size)) + ret = E.EMEM4004 + + if ret != E.OK: + self.logger.log_err("test memory capacity done, FAILED.") + else: + self.logger.log_err("test memory capacity done, PASS.") + + return ret + + def test_memory_stress(self): + self.logger.log_info("test memory stress start") + + ret = E.OK + status, out = run_command("memtester 1M 1") + self.logger.log_info(out) + if status: + reason = "exec failed, cmd: memtester 1M 1" + self.log_reason(reason) + ret = E.EMEM4002 + + if ret != E.OK: + self.logger.log_err("test memory stress done, FAILED!") + else: + self.logger.log_err("test memory stress done, PASS!") + + return ret + + def test_memory_ecc(self): + self.logger.log_info("test memory ecc start") + + if self.arch in X86_ARCH_LIST: + ret = self._x86_memory_ecc_check() + elif self.arch in ARM_ARCH_LIST: + ret = self._arm_memory_ecc_check() + + if ret != E.OK: + self.logger.log_err("test memory stress done, FAILED.") + else: + self.logger.log_err("test memory stress done, PASS.") + + return ret + + def run_test(self, *argv): + final_ret = E.OK + + try: + ret = self.test_memory_info() + if ret != E.OK: + final_ret = ret + except Exception as e: + reason = "test memory info exception {}, FAILED".format(str(e)) + self.log_reason(reason) + self.logger.log_err(traceback.format_exc()) + final_ret = E.EFAIL + + try: + ret = self.test_memory_capacity() + if ret != E.OK: + final_ret = ret + except Exception as e: + reason = "test memory capacity exception {}, FAILED".format(str(e)) + self.log_reason(reason) + self.logger.log_err(traceback.format_exc()) + final_ret = E.EFAIL + + try: + ret = self.test_memory_stress() + if ret != E.OK: + final_ret = ret + except Exception as e: + reason = "test memory by memtester exception {}, FAILED".format(str(e)) + self.log_reason(reason) + self.logger.log_err(traceback.format_exc()) + final_ret = E.EFAIL + + try: + ret = self.test_memory_ecc() + if ret != E.OK: + final_ret = ret + except Exception as e: + reason = "test memory ecc exception {}, FAILED".format(str(e)) + self.log_reason(reason) + self.logger.log_err(traceback.format_exc()) + final_ret = E.EFAIL + + return final_ret diff --git a/src/sonic-pit/pit-sysdiag/src/oob_tc.py b/src/sonic-pit/pit-sysdiag/src/oob_tc.py new file mode 100644 index 000000000000..bcac0d5540ea --- /dev/null +++ b/src/sonic-pit/pit-sysdiag/src/oob_tc.py @@ -0,0 +1,140 @@ +import sys +from test_case import TestCaseCommon +from errcode import E +from function import run_command, load_platform_util_module +import traceback + + +class OOBTC(TestCaseCommon): + __PLATFORM_SPECIFIC_MODULE_NAME = "bmcutil" + __PLATFORM_SPECIFIC_CLASS_NAME = "BmcUtil" + def __init__(self, index, logger, platform_cfg_file, case_cfg_file=None): + MODULE_NAME = "oob_tc" + TestCaseCommon.__init__(self, index, MODULE_NAME, logger, platform_cfg_file, case_cfg_file) + self.server_ip = None # external ip + self.bmc_ip = None # BMC internal ip + + try: + if self.platform_cfg_json and 'server_ip' in self.platform_cfg_json.keys(): + self.server_ip = self.platform_cfg_json['server_ip'] + if self.platform_cfg_json and 'bmc_ip' in self.platform_cfg_json.keys(): + self.bmc_ip = self.platform_cfg_json['bmc_ip'] + except Exception as e: + self.logger.log_err(str(e)) + self.logger.log_err(traceback.format_exc()) + + bmc_module = load_platform_util_module(self.__PLATFORM_SPECIFIC_MODULE_NAME) + try: + bmc_util_class = getattr(bmc_module, self.__PLATFORM_SPECIFIC_CLASS_NAME) + self.bmc_util = bmc_util_class() + except AttributeError as e: + self.logger.log_err(str(e), True) + sys.exit(1) + + def cpu_ping_bmc_test(self, also_print_console=True): + self.logger.log_info("cpu ping bmc test start") + + ret = E.OK + if not self.bmc_ip: + self.logger.log_dbg("BMC not exist, skip") + else: + count = 5 + cmd = "ping %s -c %d -I eth0.4088 | grep received" % (self.bmc_ip, count) + status, output = run_command(cmd) + self.logger.log_info(output, also_print_console) + + if output.find(" 0% packet loss") > 0: + ret = E.OK + else: + self.log_reason("cpu ping bmc lost packages") + ret = E.EMGMT11003 + + if ret != E.OK: + self.logger.log_err("cpu ping bmc test done, FAILED.", also_print_console) + else: + self.logger.log_err("cpu ping bmc test done, PASS.", also_print_console) + + return ret + + def cpu_ping_server_test(self, also_print_console=True): + self.logger.log_info("cpu ping server test start") + + ret = E.OK + if not self.server_ip: + self.logger.log_dbg("External server ip not set, skip") + else: + count = 5 + ping_cmd = "ping %s -c %d -I eth0 | grep received" % (self.server_ip, count) + status, output = run_command(ping_cmd) + self.logger.log_info(output, also_print_console) + + if output.find(" 0% packet loss") > 0: + ret = E.OK + else: + self.log_reason("cpu ping server lost packages") + ret = E.EMGMT11002 + + if ret != E.OK: + self.logger.log_err("FAIL!", also_print_console) + else: + self.logger.log_info("PASS.", also_print_console) + + return ret + + def bmc_ping_server_test(self, also_print_console=True): + self.logger.log_info("bmc ping server test start") + + count = 5 + ping_cmd = "ping %s -c %d -I eth0 | grep received" % (self.server_ip, count) + try: + status, output = self.bmc_util.exec_raw_cmd(ping_cmd) + self.logger.log_info(output[0], also_print_console) + + if status and output[0].find(" 0% packet loss") > 0: + ret = E.OK + else: + self.log_reason.append("bmc ping server lost packages") + ret = E.EMGMT11004 + except Exception as e: + self.log_reason("bmc ping server exception: {}".format(str(e))) + self.logger.log_err(traceback.format_exc()) + ret = E.EMGMT11004 + + if ret != E.OK: + self.logger.log_err("FAIL!", also_print_console) + else: + self.logger.log_info("PASS.", also_print_console) + + return ret + + def run_test(self, *argv): + final_ret = E.OK + + try: + ret = self.cpu_ping_bmc_test() + if ret != E.OK: + final_ret = ret + except Exception as e: + reason = "cpu ping bmc test exception: {}".format(str(e)) + self.log_reason(reason) + self.logger.log_err(traceback.format_exc()) + + try: + ret = self.cpu_ping_server_test() + if ret != E.OK: + final_ret = ret + except Exception as e: + reason = "cpu ping server test exception: {}".format(str(e)) + self.log_reason(reason) + self.logger.log_err(traceback.format_exc()) + + try: + ret = self.bmc_ping_server_test() + if ret != E.OK: + final_ret = ret + except Exception as e: + reason = "bmc ping server test exception: {}".format(str(e)) + self.log_reason(reason) + self.logger.log_err(traceback.format_exc()) + + return ret diff --git a/src/sonic-pit/pit-sysdiag/src/rtc_tc.py b/src/sonic-pit/pit-sysdiag/src/rtc_tc.py new file mode 100644 index 000000000000..64deb80b131d --- /dev/null +++ b/src/sonic-pit/pit-sysdiag/src/rtc_tc.py @@ -0,0 +1,144 @@ +# -*- coding:utf-8 +import time +from test_case import TestCaseCommon +from function import run_command +from errcode import E +import traceback + +class RTCTC(TestCaseCommon): + def __init__(self, index, logger, platform_cfg_file, case_cfg_file=None): + MODULE_NAME = "rtc_tc" + TestCaseCommon.__init__(self, index, MODULE_NAME, logger, + platform_cfg_file, case_cfg_file) + self.rtc_info_dict = None + try: + if self.platform_cfg_json and \ + "rtc_info" in self.platform_cfg_json.keys(): + self.rtc_info_dict = self.platform_cfg_json["rtc_info"] + except Exception as e: + self.logger.log_err(str(e), True) + + def read_rtc_test(self, also_print_console=False): + ret = E.OK + self.logger.log_info("read_rtc_test start") + + cmd = "hwclock -r" + code, out = run_command(cmd) + if code: + reason = "Failed to exec 'hwclock -r'" + ret = E.ERTC12001 + self.log_reason(reason) + self.logger.log_dbg(out, also_print_console) + + if ret != E.OK: + self.logger.log_info("read_rtc_test done, FAILED.") + else: + self.logger.log_info("read_rtc_test done, PASS.") + return ret + + def rtc_precision_test(self, wait_time=5, also_print_console=False): + ret = E.OK + rtc_since_epoch_file = "/sys/class/rtc/rtc0/since_epoch" + + self.logger.log_info("rtc_precision_test start") + try: + with open(rtc_since_epoch_file, "r") as f: + start_sec = int(f.read()) + timeArraystart = time.localtime(start_sec) + otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArraystart) + log_msg = "rtc time: {}".format(otherStyleTime) + self.logger.log_info(log_msg, also_print_console) + log_msg = "system time: {}".format( + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) + self.logger.log_info(log_msg, also_print_console) + + self.logger.log_info("time sleep: " + str(wait_time), also_print_console) + time.sleep(wait_time) + + with open(rtc_since_epoch_file, "r") as f: + end_sec = int(f.read()) + timeArrayend = time.localtime(end_sec) + otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArrayend) + log_msg = "rtc time: {}".format(otherStyleTime) + self.logger.log_info(log_msg, also_print_console) + log_msg = "system time: {}".format( + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) + self.logger.log_info(log_msg, also_print_console) + + timeCompare = end_sec - start_sec + self.logger.log_info("time difference: " + str(timeCompare), + also_print_console) + if timeCompare < (wait_time - 1) or timeCompare > (wait_time + 1): + self.log_reason("{} beyond {}".format(timeCompare, wait_time)) + ret = E.ERTC12002 + except IOError as e: + self.fail_reason.append(str(e)) + ret = E.ERTC12001 + + if ret != E.OK: + self.logger.log_info("rtc_precision_test done, FAILED.") + else: + self.logger.log_info("rtc_precision_test done, PASS.") + + return ret + + def rtc_functional_test(self, also_print_console=False): + self.logger.log_info("rtc_functional_test start") + current_secs_before = int(time.time()) + delay_interval = self.rtc_info_dict["delay_time"] + self.logger.log_info( + "please waiting {} sec".format(delay_interval), also_print_console) + time.sleep(delay_interval) + time_end = time.strftime("%Y-%m-%d %H:%M:%S") + self.logger.log_info("current time: %s" % time_end, also_print_console) + current_secs_after = int(time.time()) + delta_interval = current_secs_after - current_secs_before + if abs(delta_interval - delay_interval) > self.rtc_info_dict["max_time_diff"]: + self.log_reason("time out of sync") + ret = E.ERTC12002 + else: + ret = E.OK + + if ret != E.OK: + self.logger.log_err("rtc_functional_test FAILED") + else: + self.logger.log_info("rtc_functional_test PASS.") + + return ret + + def run_test(self, *argv): + # RTC functional test + final_result = E.OK + try: + ret = self.rtc_functional_test() + if ret != E.OK: + final_result = ret + except Exception as e: + reason = "Failed, {} rtc_functional_test exception: {}".format(self.get_tc_name(), str(e)) + self.log_reason(reason) + self.logger.log_err(traceback.format_exc()) + final_result = E.EFAIL + + # RTC read test + try: + ret = self.read_rtc_test() + if ret != E.OK: + final_result = ret + except Exception as e: + reason = "Failed, {} read_rtc_test exception: {}".format(self.get_tc_name(), str(e)) + self.log_reason(reason) + self.logger.log_err(traceback.format_exc()) + final_result = E.EFAIL + + # RTC precision test + try: + ret = self.rtc_precision_test(5) + if ret != E.OK: + final_result = ret + except Exception as e: + reason = "Failed, {} rtc_precision_test exception: {}".format(self.get_tc_name(), str(e)) + self.log_reason(reason) + self.logger.log_err(traceback.format_exc()) + final_result = E.EFAIL + + return final_result diff --git a/src/sonic-pit/pit-sysdiag/src/sensor_tc.py b/src/sonic-pit/pit-sysdiag/src/sensor_tc.py new file mode 100644 index 000000000000..a65f8059aea3 --- /dev/null +++ b/src/sonic-pit/pit-sysdiag/src/sensor_tc.py @@ -0,0 +1,121 @@ +import sys +from tabulate import tabulate +from test_case import TestCaseCommon +from function import load_platform_util_module +from errcode import E +import traceback + + +class SENSORTC(TestCaseCommon): + __PLATFORM_SPECIFIC_MODULE_NAME = "sensorutil" + __PLATFORM_SPECIFIC_CLASS_NAME = "SensorUtil" + def __init__(self, index, logger, platform_cfg_file, case_cfg_file=None): + MODULE_NAME = "sensor_tc" + self.sensor_util = None + TestCaseCommon.__init__(self, index, MODULE_NAME, logger, platform_cfg_file, case_cfg_file) + + sensor_module = load_platform_util_module(self.__PLATFORM_SPECIFIC_MODULE_NAME) + try: + platform_util_class = getattr(sensor_module, self.__PLATFORM_SPECIFIC_CLASS_NAME) + self.sensor_util = platform_util_class() + except AttributeError as e: + self.logger.log_err(str(e), True) + sys.exit(1) + + def load_sensor_info(self): + sensor_dict = {} + if self.sensor_util: + sensor_dict = self.sensor_util.get_all() + return sensor_dict + + def sensor_verify(self, sensor_dict): + self.logger.log_info("sensor verify start") + if not sensor_dict: + self.log_reason("get sensors failed!") + return E.EFAIL + + ret = E.OK + header = ["Sensor", 'InputName', 'Status', 'Value', 'LowThd', 'HighThd'] + status_table = [] + + try: + for sensor_name, sensor_obj in sensor_dict.items(): + if sensor_name == 'Number': + continue + + if not isinstance(sensor_obj, dict): + continue + + si_names = [k for k in sensor_obj.keys()] + si_names.sort() + for si_name in si_names: + si = sensor_obj[si_name] + sval = si.get('Value') + slow = si.get('LowThd') + shigh = si.get("HighThd") + sunit = si.get('Unit') + sdesc = si.get('Description') + fault = False + + if not sunit: + sunit = "" + stype = si.get('Type') + if stype: + type2unit = {"amp": "A", "voltage": "V", "power": "W", + "temperature": "C", "RPM": "RPM"} + if stype in type2unit: + sunit = type2unit[stype] + + try: + sval = float(sval) + except: + sval = 0.0 + fault = True + + try: + slow = float(slow) + except: + slow = 0.0 + fault = True + + try: + shigh = float(shigh) + except: + shigh = 0.0 + fault = True + + status = 'NOT_OK' + if fault == False and sval >= slow and sval <= shigh: + status = 'OK' + else: + ret = E.ESSR7003 + self.log_reason("{} out of threshold".format(si_name)) + + status_table.append([sensor_name, si_name, status, "{} {}".format(sval, sunit), \ + "{} {}".format(slow, sunit), "{} {}".format(shigh, sunit)]) + except Exception as e: + reason = "sensor verify got exception: {}".format(str(e)) + self.fail_reason.append(str(e)) + self.logger.log_err(traceback.format_exc()) + ret = E.ESSR7002 + + if len(status_table) > 0: + status_table.sort() + self.logger.log_info(tabulate(status_table, header, tablefmt="simple")) + + if ret != E.OK: + self.logger.log_err("sensor verify done, FAILED.") + else: + self.logger.log_info("sensor verify done, PASS.") + + return ret + + def run_test(self, *argv): + try: + sensor_dict = self.load_sensor_info() + ret = self.sensor_verify(sensor_dict) + except Exception as e: + reason = "load_sensor/sensor_verify got exception: {}".format(str(e)) + self.log_reason(reason) + + return ret diff --git a/src/sonic-pit/pit-sysdiag/src/ssd_tc.py b/src/sonic-pit/pit-sysdiag/src/ssd_tc.py new file mode 100644 index 000000000000..9d86819d5ab5 --- /dev/null +++ b/src/sonic-pit/pit-sysdiag/src/ssd_tc.py @@ -0,0 +1,224 @@ +import os +import re +import subprocess +from test_case import TestCaseCommon +from errcode import * +from function import run_command +import traceback + + +class SSDTC(TestCaseCommon): + def __init__(self, index, logger, platform_cfg_file, case_cfg_file=None): + MODULE_NAME = "ssd_tc" + TestCaseCommon.__init__(self, index, MODULE_NAME, logger, platform_cfg_file, case_cfg_file) + self.test_size = 1 # unit: MBytes, default + self.ssd_bom_list = None # default + + try: + if self.platform_cfg_json and 'ssd_test_size' in self.platform_cfg_json.keys(): + size = self.platform_cfg_json['ssd_test_size'] + if size.endswith("m") or size.endswith("M"): + self.test_size = int(size.strip("mM")) + else: + self.test_size = int(size) + if self.platform_cfg_json and 'ssd_bom' in self.platform_cfg_json.keys(): + self.ssd_bom_list = self.platform_cfg_json['ssd_bom'] + except Exception as e: + self.logger.log_err(str(e)) + + def search_dir_by_name(self, name, dir): + result = [] + try: + files = os.listdir(dir) + for file in files: + if name in file: + result.append(os.path.join(dir, file)) + except Exception as e: + pass + return result + + def get_ssd_location(self): + ret = NO_ERR + dir = "/sys/block/" + spect = "sd" + ssdpath = [] + result = self.search_dir_by_name(spect, dir) + if len(result) <= 0: + ret = ABSENT_ERR + else: + for item in result: + with open(os.path.join(item, "removable"), 'r') as fd: + value = fd.read() + if value.strip() == "0": # found ssd + ssd_disk = "/dev/" + os.path.basename(item) + ssdpath.append(ssd_disk) + if not ssdpath: # not found ssd + self.logger.log_err("no ssd found") + ret = ABSENT_ERR + + if ret: + self.log_reason("ssd not found!") + + return ret, ssdpath + + def test_ssd_info(self, ssdpath): + ret = E.OK + ssd = {} + self.logger.log_info("test ssd info start") + for path in ssdpath: + status, out = run_command("smartctl -i {}".format(path)) + self.logger.log_info(out) + if status: + err = "Read ssd {} info failed!".format(path) + self.log_reason(err) + ret = E.ESSD2001 + else: + if self.ssd_bom_list: + matched = False + model_match = False + size_match = False + lines = out.splitlines() + for ssd_bom in self.ssd_bom_list: + expected_model = ssd_bom["model"] + expected_size = ssd_bom["size"] + for line in lines: + if line.startswith("Device Model:"): + if line.find(expected_model) != -1: + model_match = True + continue + elif line.startswith("User Capacity"): + if line.find(expected_size) != -1: + size_match = True + continue + if model_match and size_match: + matched = True + break + + # Does not match any of expected BOM + if not matched: + ret = E.ESSD2001 + self.fail_reason.append("SSD model/size not match") + + if ret != E.OK: + self.logger.log_err("test ssd info done, FAILED.") + else: + self.logger.log_err("test ssd info done, PASS.") + + return ret + + def ssd_health_check(self, ssdpath): + """ + SSD SMART overall-health self-assessment test + """ + ret = E.OK + self.logger.log_info("ssd health check start") + for path in ssdpath: + status, out = run_command("smartctl -H {} | grep result".format(path)) + self.logger.log_info(out) + + if out.find("PASSED") == -1: + reason = "ssd {} health check failed!".format(path) + ret = E.ESSD2004 + self.log_reason(err) + + if ret != E.OK: + self.logger.log_err("ssd health check done, FAILED.") + else: + self.logger.log_err("ssd health check done, PASS.") + + return ret + + def ssd_read_test(self): + self.logger.log_info("ssd read test start") + + bs_count = self.test_size * 64 + cmd = "dd if=/dev/sda of=/dev/null bs=16k count=%d iflag=direct,nonblock" % bs_count + self.logger.log_dbg(cmd) + status, out = run_command(cmd) + if status: + err = "[{}] read test failed!".format(self.module_name) + self.log_reason.append(err) + else: + self.logger.log_info(out) + + if status: + self.logger.log_err("ssd read test done, FAILED.") + ret = E.ESSD2002 + else: + self.logger.log_info("ssd read test done, PASS.") + ret = E.OK + + return ret + + def ssd_write_test(self): + self.logger.log_info("ssd write test start") + + bs_count = self.test_size * 64 + cmd = "dd if=/dev/urandom of=/tmp/txtfile_ssd bs=16k count=%d oflag=direct,nonblock" % bs_count + self.logger.log_info(cmd) + status, out = run_command(cmd) + if status: + err = "[{}] write test failed!".format(self.module_name) + self.log_reason.append(err) + else: + self.logger.log_info(out) + os.remove("/tmp/txtfile_ssd") + + if status: + self.logger.log_err("ssd write test done, FAILED.") + ret = E.ESSD2003 + else: + self.logger.log_info("ssd write test done, PASS.") + ret = E.OK + + return ret + + def run_test(self, *argv): + final_ret = E.OK + + try: + status, ssdpath = self.get_ssd_location() + if status: + final_ret = E.ESSD2001 + except Exception as e: + reason = "get ssd location exception {}".format(str(e)) + self.log_reason(reason) + self.logger.log_err(traceback.format_exc()) + + try: + ret = self.test_ssd_info(ssdpath) + if ret != E.OK: + final_ret = ret + except Exception as e: + reason = "ssd info check exception {}".format(str(e)) + self.log_reason(reason) + self.logger.log_err(traceback.format_exc()) + + try: + ret = self.ssd_health_check(ssdpath) + if ret != E.OK: + final_ret = ret + except Exception as e: + reason = "ssd health check exception {}".format(str(e)) + self.log_reason(reason) + self.logger.log_err(traceback.format_exc()) + + try: + ret = self.ssd_read_test() + if ret != E.OK: + final_ret = ret + except Exception as e: + reason = "ssd read test exception {}".format(str(e)) + self.log_reason(reason) + self.logger.log_err(traceback.format_exc()) + + try: + ret = self.ssd_write_test() + if ret != E.OK: + final_ret = ret + except Exception as e: + reason = "ssd write test exception {}".format(str(e)) + self.log_reason(reason) + self.logger.log_err(traceback.format_exc()) + + return final_ret diff --git a/src/sonic-py-common/sonic_py_common/device_info.py b/src/sonic-py-common/sonic_py_common/device_info.py index d35dfbeeb9fa..2a7713433148 100644 --- a/src/sonic-py-common/sonic_py_common/device_info.py +++ b/src/sonic-py-common/sonic_py_common/device_info.py @@ -826,3 +826,13 @@ def is_fast_reboot_enabled(): state_db.close(state_db.STATE_DB) return fb_enable_state + + +def is_frontend_port_present_in_host(): + if is_supervisor(): + return False + if is_multi_npu(): + namespace_id = os.getenv("NAMESPACE_ID") + if not namespace_id: + return False + return True diff --git a/src/sonic-swss b/src/sonic-swss index a391ed0acc4e..a67f684f448d 160000 --- a/src/sonic-swss +++ b/src/sonic-swss @@ -1 +1 @@ -Subproject commit a391ed0acc4ed5b7a7d3a435f9a8429cc97af3db +Subproject commit a67f684f448d45c5b6c4a7be6ccd4218d0ccd57e diff --git a/src/sonic-swss-common b/src/sonic-swss-common index c3a77cceb9eb..d6453bcb372b 160000 --- a/src/sonic-swss-common +++ b/src/sonic-swss-common @@ -1 +1 @@ -Subproject commit c3a77cceb9ebd8354d87e1a0e5e761d4a3840e50 +Subproject commit d6453bcb372b2fc93995ef6ccf5a40f0638506a8 diff --git a/src/sonic-yang-models/doc/Configuration.md b/src/sonic-yang-models/doc/Configuration.md index 29e1272044a5..3590adea6b98 100644 --- a/src/sonic-yang-models/doc/Configuration.md +++ b/src/sonic-yang-models/doc/Configuration.md @@ -47,6 +47,7 @@ Table of Contents * [Management VRF](#management-vrf) * [MAP_PFC_PRIORITY_TO_QUEUE](#map_pfc_priority_to_queue) * [MUX_CABLE](#mux_cable) + * [MUX_LINKMGR](#mux_linkmgr) * [NEIGH](#neigh) * [NTP Global Configuration](#ntp-global-configuration) * [NTP and SYSLOG servers](#ntp-and-syslog-servers) @@ -1403,6 +1404,25 @@ The **MUX_CABLE** table is used for dualtor interface configuration. The `cable_ } ``` +### MUX_LINKMGR +The **MUX_LINKMGR** table is used for dualtor device configuration. +``` +{ + "MUX_LINKMGR": { + "LINK_PROBER": { + "interval_v4": "100", + "interval_v6": "1000", + "positive_signal_count": "1", + "negative_signal_count": "3", + "suspend_timer": "500", + "use_well_known_mac": "enabled", + "src_mac": "ToRMac", + "interval_pck_loss_count_update": "3" + } + } +} +``` + ### NEIGH The **NEIGH** table is used to keep track of resolved and static neighbors. diff --git a/src/sonic-yang-models/setup.py b/src/sonic-yang-models/setup.py index eab62ddcab6c..d6aeb3e0d88e 100644 --- a/src/sonic-yang-models/setup.py +++ b/src/sonic-yang-models/setup.py @@ -133,6 +133,7 @@ def run(self): './yang-models/sonic-mirror-session.yang', './yang-models/sonic-mpls-tc-map.yang', './yang-models/sonic-mux-cable.yang', + './yang-models/sonic-mux-linkmgr.yang', './yang-models/sonic-neigh.yang', './yang-models/sonic-ntp.yang', './yang-models/sonic-nat.yang', diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index 9d4c291cb081..37a8e024e4d4 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -2120,6 +2120,19 @@ } }, + "MUX_LINKMGR": { + "LINK_PROBER": { + "interval_v4": "100", + "interval_v6": "1000", + "positive_signal_count": "1", + "negative_signal_count": "3", + "suspend_timer": "500", + "use_well_known_mac": "enabled", + "src_mac": "ToRMac", + "interval_pck_loss_count_update": "3" + } + }, + "NEIGH": { "Vlan100|100.1.1.3": { "family": "IPv4" diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/mux-linkmgr.json b/src/sonic-yang-models/tests/yang_model_tests/tests/mux-linkmgr.json new file mode 100644 index 000000000000..3f399eec76cc --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/mux-linkmgr.json @@ -0,0 +1,8 @@ +{ + "MUX_LINKMGR_LINK_PROBER_INTERVAL_CHANGE": { + "desc": "Consume ICMP heartbeat interval and timeout config changes. " + }, + "MUX_LINKMGR_LINK_PROBER_CHANGE_MAC_ADDR": { + "desc": "Use well-known mac and vlan mac as dst/src in linkmgrd link prober. " + } +} \ No newline at end of file diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/mux-linkmgr.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/mux-linkmgr.json new file mode 100644 index 000000000000..2210c169365c --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/mux-linkmgr.json @@ -0,0 +1,26 @@ +{ + "MUX_LINKMGR_LINK_PROBER_INTERVAL_CHANGE": { + "sonic-mux-linkmgr:sonic-mux-linkmgr": { + "sonic-mux-linkmgr:MUX_LINKMGR": { + "sonic-mux-linkmgr:LINK_PROBER": + { + "interval_v4": "1000", + "interval_v6": "10000", + "positive_signal_count": 3, + "negative_signal_count": 9 + } + } + } + }, + "MUX_LINKMGR_LINK_PROBER_CHANGE_MAC_ADDR": { + "sonic-mux-linkmgr:sonic-mux-linkmgr": { + "sonic-mux-linkmgr:MUX_LINKMGR": { + "sonic-mux-linkmgr:LINK_PROBER": + { + "use_well_known_mac": "enabled", + "src_mac": "VlanMac" + } + } + } + } +} \ No newline at end of file diff --git a/src/sonic-yang-models/yang-models/sonic-mux-linkmgr.yang b/src/sonic-yang-models/yang-models/sonic-mux-linkmgr.yang new file mode 100644 index 000000000000..93e605ea8e51 --- /dev/null +++ b/src/sonic-yang-models/yang-models/sonic-mux-linkmgr.yang @@ -0,0 +1,88 @@ +module sonic-mux-linkmgr { + namespace "http://github.com/sonic-net/sonic-mux-linkmgr"; + prefix mux_linkmgr; + yang-version 1.1; + + organization + "SONiC"; + + contact + "SONiC"; + + description + "SONiC DualToR Linkmgrd configuration data"; + + revision 2023-06-07 { + description + "Initial revision"; + } + + container sonic-mux-linkmgr { + + container MUX_LINKMGR { + + container LINK_PROBER { + + leaf interval_v4 { + type uint32; + default 100; + units milliseconds; + + description "IPv4 ICMP heartbeat interval. "; + } + + leaf interval_v6 { + type uint32; + default 1000; + units milliseconds; + + description "IPv6 ICMP heartbeat interval. "; + } + + leaf positive_signal_count { + type uint32; + default 1; + + description "Linkmgrd positive signal count. "; + } + + leaf negative_signal_count { + type uint32; + default 3; + + description "Linkmgrd negative signal count. "; + } + + leaf suspend_timer { + type uint32; + + description "ICMP heartbeat suspending timer, currently not in use. "; + } + + leaf use_well_known_mac { + type enumeration { + enum enabled; + enum disabled; + } + + description "ICMP heartbeat use well known mac as dst mac or not. "; + } + + leaf src_mac { + type enumeration { + enum ToRMac; + enum VlanMac; + } + + description "ICMP heartbeat use what mac as src mac. "; + } + + leaf interval_pck_loss_count_update { + type uint32; + + description "The frequency of streaming ICMP heartbeat loss data to telemetry. "; + } + } + } + } +} \ No newline at end of file diff --git a/src/systemd-sonic-generator/systemd-sonic-generator.c b/src/systemd-sonic-generator/systemd-sonic-generator.c index 74f08fe39612..1d1a53dbcef9 100644 --- a/src/systemd-sonic-generator/systemd-sonic-generator.c +++ b/src/systemd-sonic-generator/systemd-sonic-generator.c @@ -569,7 +569,7 @@ int get_num_of_asic() { str_num_asic = strtok_r(NULL, "=", &saveptr); strip_trailing_newline(str_num_asic); if (str_num_asic != NULL){ - sscanf(str_num_asic, "%d",&num_asic); + num_asic = strtol(str_num_asic, NULL, 10); } break; }