From e87edda316ce88aafce87906904f9c2916d68c7b Mon Sep 17 00:00:00 2001 From: Sai Kiran <110003254+opcoder0@users.noreply.github.com> Date: Wed, 14 May 2025 14:17:30 +1000 Subject: [PATCH 01/20] Override PTF_IMAGE_TAG for release branch [202411] (#22585) [202411]Override PTF_IMAGE_TAG for release branch --- azure-pipelines.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 47ea7e2c93..9a95eecb71 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -177,6 +177,7 @@ stages: MIN_WORKER: $(T0_INSTANCE_NUM) MAX_WORKER: $(T0_INSTANCE_NUM) MGMT_BRANCH: $(BUILD_BRANCH) + PTF_IMAGE_TAG: $(BUILD_BRANCH) - job: t0_2vlans_elastictest pool: sonic-ubuntu-1c @@ -192,6 +193,7 @@ stages: MAX_WORKER: $(T0_2VLANS_INSTANCE_NUM) MGMT_BRANCH: $(BUILD_BRANCH) DEPLOY_MG_EXTRA_PARAMS: "-e vlan_config=two_vlan_a" + PTF_IMAGE_TAG: $(BUILD_BRANCH) - job: t1_lag_elastictest pool: sonic-ubuntu-1c @@ -205,6 +207,7 @@ stages: MIN_WORKER: $(T1_LAG_INSTANCE_NUM) MAX_WORKER: $(T1_LAG_INSTANCE_NUM) MGMT_BRANCH: $(BUILD_BRANCH) + PTF_IMAGE_TAG: $(BUILD_BRANCH) - job: multi_asic_elastictest displayName: "kvmtest-multi-asic-t1-lag by Elastictest" @@ -220,6 +223,7 @@ stages: MAX_WORKER: $(MULTI_ASIC_INSTANCE_NUM) NUM_ASIC: 4 MGMT_BRANCH: $(BUILD_BRANCH) + PTF_IMAGE_TAG: $(BUILD_BRANCH) - job: dualtor_elastictest pool: sonic-ubuntu-1c @@ -234,6 +238,7 @@ stages: MAX_WORKER: $(T0_DUALTOR_INSTANCE_NUM) MGMT_BRANCH: $(BUILD_BRANCH) COMMON_EXTRA_PARAMS: "--disable_loganalyzer " + PTF_IMAGE_TAG: $(BUILD_BRANCH) - job: sonic_t0_elastictest displayName: "kvmtest-t0-sonic by Elastictest" @@ -250,6 +255,7 @@ stages: MGMT_BRANCH: $(BUILD_BRANCH) COMMON_EXTRA_PARAMS: "--neighbor_type=sonic " VM_TYPE: vsonic + PTF_IMAGE_TAG: $(BUILD_BRANCH) - job: dpu_elastictest displayName: "kvmtest-dpu by Elastictest" @@ -263,6 +269,7 @@ stages: MIN_WORKER: $(T0_SONIC_INSTANCE_NUM) MAX_WORKER: $(T0_SONIC_INSTANCE_NUM) MGMT_BRANCH: $(BUILD_BRANCH) + PTF_IMAGE_TAG: $(BUILD_BRANCH) # - job: wan_elastictest # displayName: "kvmtest-wan by Elastictest" From 78d363b4ac4e3cd2d12fd74e138c3a6fd6b4739d Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Thu, 15 May 2025 16:01:58 +0800 Subject: [PATCH 02/20] [resolv-config] Improve container resolv.conf update mechanism (#22462) #### Why I did it Fix a possible race condition during the config reload caused by the concurrent restart of the Docker containers and the resolv-config service. The update of the DNS configuration inside the container is triggered by the container's post-start action. ##### Work item tracking - Microsoft ADO **(number only)**: #### How I did it - Add support for single container updates with container name argument - Implement parallel updates for bulk operations - Add comprehensive logging with syslog integration - Add container state handling (start/wait for stopped containers) - Add proper error handling and status reporting - Remove temporary file usage during resolv.conf updates - Add networking service check for bulk updates only Integration changes: - Add automatic DNS update call in docker_image_ctl post-start action #### How to verify it Run sonic-mgmt DNS tests #### Which release branch to backport (provide reason below if selected) - [ ] 201811 - [ ] 201911 - [ ] 202006 - [ ] 202012 - [ ] 202106 - [ ] 202111 - [ ] 202205 - [ ] 202211 - [ ] 202305 #### Tested branch (Please provide the tested image version) - [ ] - [ ] #### Description for the changelog #### Link to config_db schema for YANG module changes #### A picture of a cute animal (not mandatory but encouraged) --- files/build_templates/docker_image_ctl.j2 | 1 + .../resolv-config/update-containers | 116 +++++++++++++++++- 2 files changed, 113 insertions(+), 4 deletions(-) diff --git a/files/build_templates/docker_image_ctl.j2 b/files/build_templates/docker_image_ctl.j2 index 08f189b36f..2d868ba0b7 100644 --- a/files/build_templates/docker_image_ctl.j2 +++ b/files/build_templates/docker_image_ctl.j2 @@ -359,6 +359,7 @@ function postStartAction() {%- else %} : # nothing {%- endif %} + /etc/resolvconf/update-libc.d/update-containers ${DOCKERNAME} & } start() { diff --git a/files/image_config/resolv-config/update-containers b/files/image_config/resolv-config/update-containers index 891fd2ea74..ca2ef3f8b2 100755 --- a/files/image_config/resolv-config/update-containers +++ b/files/image_config/resolv-config/update-containers @@ -1,12 +1,120 @@ #!/bin/bash +SCRIPT_NAME=$(basename "$0") +DEBUG=${DEBUG:-false} +WAIT_TIMEOUT=5 # 5 seconds timeout for waiting containers to start + +# Function to log messages to syslog +log_message() { + local level=$1 + local message=$2 + local caller=${FUNCNAME[1]} + # Skip debug messages if DEBUG is not true + if [[ "$level" == "debug" && "$DEBUG" != "true" ]]; then + return + fi + logger -t "resolv-config" -p "user.${level}" "[${SCRIPT_NAME}:${caller}] ${message}" +} + +# Function to wait for container to start +# Used only when updating a specific container that is not running +wait_for_container() { + local container=$1 + local start_time=$(date +%s) + local container_name=$(docker inspect --format '{{.Name}}' ${container} | sed 's/^\///') + while [[ $(($(date +%s) - start_time)) -lt $WAIT_TIMEOUT ]]; do + if docker inspect --format '{{.State.Status}}' ${container} | grep -q "running"; then + log_message "info" "Container ${container_name} (${container}) is now running" + return 0 + fi + sleep 1 + done + return 1 +} + +# Function to update resolv.conf for a single container +# Parameters: +# $1: container ID +# $2: wait_for_start (optional) - if true, will attempt to start and wait for stopped containers +update_container_resolv() { + local container=$1 + local wait_for_start=${2:-false} # Default to false for bulk updates + local container_name=$(docker inspect --format '{{.Name}}' ${container} | sed 's/^\///') + local container_state=$(docker inspect --format '{{.State.Status}}' ${container}) + if [[ "$container_state" != "running" ]]; then + if [[ "$wait_for_start" == "true" ]]; then + log_message "debug" "Container ${container_name} (${container}) is not running, attempting to start it" + if ! docker start ${container}; then + log_message "error" "Failed to start container ${container_name} (${container})" + return 1 + fi + if ! wait_for_container "$container"; then + log_message "error" "Container ${container_name} (${container}) failed to start within timeout" + return 1 + fi + else + log_message "debug" "Container ${container_name} (${container}) is not running, skipping update" + return 0 + fi + fi + if ! docker exec -t ${container} bash -c "echo '${RESOLV_CONTENT}' > /etc/resolv.conf"; then + log_message "info" "Failed to update resolv.conf for container ${container_name} (${container})" + return 1 + fi + log_message "debug" "Successfully updated resolv.conf for container ${container_name} (${container})" +} + +# Read resolv.conf content once +RESOLV_CONTENT=$(cat /etc/resolv.conf) +# Empty resolv.conf is valid, so we don't check for empty content +if [[ ! -f /etc/resolv.conf ]]; then + log_message "error" "File /etc/resolv.conf does not exist" + exit 1 +fi + +# Check if a container name was provided as an argument +if [[ $# -gt 0 ]]; then + container_name=$1 + # Find container ID by name (including stopped containers) + container_id=$(docker ps -aq -f "name=^${container_name}$") + if [[ -z "$container_id" ]]; then + log_message "error" "Container with name '${container_name}' not found" + exit 1 + fi + log_message "info" "Updating resolv.conf for container ${container_name}" + # For single container updates, attempt to start and wait if container is stopped + update_container_resolv "$container_id" "true" + exit $? +fi + +# Check if networking service is active (only for bulk updates) networking_status=$(systemctl is-active networking.service 2>/dev/null) if [[ $networking_status != "active" ]]; then + log_message "info" "Networking service is not active, skipping container updates" exit 0 fi -for container in $(docker ps -q); 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" +# If no container name provided, update only running containers +log_message "info" "Starting resolv.conf update for running containers" + +# Get list of running containers only +containers=$(docker ps -q) +container_count=$(echo "${containers}" | wc -l) +log_message "info" "Found ${container_count} running containers to process" + +# Run updates in parallel using background processes +# For bulk updates, skip any non-running containers without waiting +for container in $containers; do + update_container_resolv "$container" "false" & done + +# Wait for all background processes to complete +wait + +# Check if any updates failed +if [[ $? -ne 0 ]]; then + log_message "error" "Some container updates failed" + exit 1 +fi + +log_message "info" "Completed resolv.conf updates for all running containers" From fb14505b01c75a11f2bff980b79751e55c33377f Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Fri, 23 May 2025 03:23:21 +0800 Subject: [PATCH 03/20] [submodule] Update submodule sonic-swss to the latest HEAD automatically (#22636) [submodule] Update submodule sonic-swss to the latest HEAD automatically --- src/sonic-swss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss b/src/sonic-swss index 79f04e325a..623b018651 160000 --- a/src/sonic-swss +++ b/src/sonic-swss @@ -1 +1 @@ -Subproject commit 79f04e325a9042096a2ea548f0d0e3e4915382bf +Subproject commit 623b01865116a4433cc364a4cc43e3def6076022 From 683b33628fd555ffbb58614fb7386a2f3b7664f8 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Fri, 23 May 2025 16:02:12 +0800 Subject: [PATCH 04/20] Bump up /dev/shm size for Broadcom platforms to 512MB by default (#22547) #### Why I did it In the case of ASIC detection failures on Broadcom (or if the ASIC couldn't be detected in time), the `/dev/shm` partition in the syncd container will be only 64MB, which might cause issues if syncd/Broadcom SAI library needs more space than that. ##### Work item tracking - Microsoft ADO **(number only)**: #### How I did it Since using a larger `/dev/shm` on its own doesn't cause any issues, bump up the default to 512MB. This should be enough for most platforms. #### How to verify it #### Which release branch to backport (provide reason below if selected) - [ ] 201811 - [ ] 201911 - [ ] 202006 - [ ] 202012 - [ ] 202106 - [ ] 202111 - [ ] 202205 - [ ] 202211 - [ ] 202305 #### Tested branch (Please provide the tested image version) - [ ] - [ ] #### Description for the changelog #### Link to config_db schema for YANG module changes #### A picture of a cute animal (not mandatory but encouraged) --- files/build_templates/docker_image_ctl.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/build_templates/docker_image_ctl.j2 b/files/build_templates/docker_image_ctl.j2 index 2d868ba0b7..dabf4958af 100644 --- a/files/build_templates/docker_image_ctl.j2 +++ b/files/build_templates/docker_image_ctl.j2 @@ -682,7 +682,7 @@ start() { {%- endif %} {%- if sonic_asic_platform == "broadcom" %} {%- if docker_container_name == "syncd" %} - --shm-size=${SYNCD_SHM_SIZE:-64m} \ + --shm-size=${SYNCD_SHM_SIZE:-512m} \ -v /var/run/docker-syncd$DEV:/var/run/sswsyncd \ {%- endif %} {%- endif %} From 3a9d5bc8d3e31e16fc82dffe74e84f67276e687c Mon Sep 17 00:00:00 2001 From: Liu Shilong Date: Sun, 25 May 2025 12:39:58 +0800 Subject: [PATCH 05/20] [build] Upgrade natsort pypi package from 6.2.1 to 8.4.0 (#22609) [build] Upgrade natsort pypi package from 6.2.1 to 8.4.0 --- .../versions/build/build-sonic-slave-bookworm/versions-py3 | 2 +- .../versions/build/build-sonic-slave-bullseye/versions-py3 | 2 +- .../versions/dockers/docker-config-engine-bookworm/versions-py3 | 2 +- .../versions/dockers/docker-config-engine-bullseye/versions-py3 | 2 +- files/build/versions/host-image/versions-py3 | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/files/build/versions/build/build-sonic-slave-bookworm/versions-py3 b/files/build/versions/build/build-sonic-slave-bookworm/versions-py3 index 91cecc2f6b..e091f6f4d4 100644 --- a/files/build/versions/build/build-sonic-slave-bookworm/versions-py3 +++ b/files/build/versions/build/build-sonic-slave-bookworm/versions-py3 @@ -19,7 +19,7 @@ jsonpatch==1.33 jsonpointer==3.0.0 jsonschema==2.6.0 lxml==4.9.1 -natsort==6.2.1 +natsort==8.4.0 netaddr==0.8.0 netifaces==0.11.0 ordered-set==4.1.0 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 3fc42d6c10..8b94883099 100644 --- a/files/build/versions/build/build-sonic-slave-bullseye/versions-py3 +++ b/files/build/versions/build/build-sonic-slave-bullseye/versions-py3 @@ -2,7 +2,7 @@ bitarray==2.8.1 ijson==3.2.3 ipaddress==1.0.23 jsondiff==2.2.1 -natsort==6.2.1 +natsort==8.4.0 netaddr==0.8.0 pyyaml==6.0.1 tabulate==0.9.0 diff --git a/files/build/versions/dockers/docker-config-engine-bookworm/versions-py3 b/files/build/versions/dockers/docker-config-engine-bookworm/versions-py3 index 718a37fe43..a5f7b62c19 100644 --- a/files/build/versions/dockers/docker-config-engine-bookworm/versions-py3 +++ b/files/build/versions/dockers/docker-config-engine-bookworm/versions-py3 @@ -4,7 +4,7 @@ ijson==3.2.3 ipaddress==1.0.23 jsondiff==2.2.1 lxml==4.9.1 -natsort==6.2.1 +natsort==8.4.0 netaddr==0.8.0 pyang==2.6.1 pyangbind==0.8.2 diff --git a/files/build/versions/dockers/docker-config-engine-bullseye/versions-py3 b/files/build/versions/dockers/docker-config-engine-bullseye/versions-py3 index d256abe0de..567fce2e5b 100644 --- a/files/build/versions/dockers/docker-config-engine-bullseye/versions-py3 +++ b/files/build/versions/dockers/docker-config-engine-bullseye/versions-py3 @@ -4,7 +4,7 @@ ijson==3.2.3 ipaddress==1.0.23 jsondiff==2.2.1 lxml==4.9.1 -natsort==6.2.1 +natsort==8.4.0 netaddr==0.8.0 pyang==2.6.1 pyangbind==0.8.1 diff --git a/files/build/versions/host-image/versions-py3 b/files/build/versions/host-image/versions-py3 index 683b35609a..dc0fd33d17 100644 --- a/files/build/versions/host-image/versions-py3 +++ b/files/build/versions/host-image/versions-py3 @@ -34,7 +34,7 @@ lazy-object-proxy==1.10.0 lxml==4.9.1 m2crypto==0.38.0 markupsafe==2.1.2 -natsort==6.2.1 +natsort==8.4.0 netaddr==0.8.0 netifaces==0.11.0 nose==1.3.7 From c4fef0a12ce36abb68f548676f7248470b1abc6b Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Sun, 25 May 2025 19:03:01 +0800 Subject: [PATCH 06/20] skip frr_bmp container from monit (#22603) #### Why I did it frr_bmp is only feature switch used for bgpd to start as "/usr/lib/frr/bgpd -A 127.0.0.1 -M bmp", so that bmp container later rollout could work, thus is should be skipped from container check. ##### Work item tracking - Microsoft ADO **(number only)**:30807821 #### How I did it skip container check from monit. #### How to verify it before fix ![image](https://github.com/user-attachments/assets/b9e2c58f-3f57-47fd-94ae-8afb4b129f14) after fix, the error log disappears. #### Which release branch to backport (provide reason below if selected) - [ ] 201811 - [ ] 201911 - [ ] 202006 - [ ] 202012 - [ ] 202106 - [ ] 202111 - [ ] 202205 - [ ] 202211 - [ ] 202305 #### Tested branch (Please provide the tested image version) - [ ] - [ ] #### Description for the changelog #### Link to config_db schema for YANG module changes #### A picture of a cute animal (not mandatory but encouraged) --- files/image_config/monit/container_checker | 3 +++ 1 file changed, 3 insertions(+) diff --git a/files/image_config/monit/container_checker b/files/image_config/monit/container_checker index 4eae9f82c3..28dd26e7db 100755 --- a/files/image_config/monit/container_checker +++ b/files/image_config/monit/container_checker @@ -69,6 +69,9 @@ def get_expected_running_containers(): container_list = [] for container_name in feature_table.keys(): + # skip frr_bmp since it's not container just bmp option used by bgpd + if container_name == "frr_bmp": + continue # slim image does not have telemetry container and corresponding docker image if container_name == "telemetry": ret = check_docker_image("docker-sonic-telemetry") From 6cfffb66cd8b61e201d264bb29ab19acb40511e9 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Sun, 25 May 2025 22:01:29 +0800 Subject: [PATCH 07/20] [submodule] Update submodule sonic-linux-kernel to the latest HEAD automatically (#22290) #### Why I did it src/sonic-linux-kernel ``` * a89afbc - (HEAD -> 202411, origin/202411) [202411] Update to Linux 6.1.123 (#459) (4 days ago) [Saikrishna Arcot] ``` #### How I did it #### How to verify it #### Description for the changelog From e060bb66fb8b661edd0d9fd4bc79ec388e5137bf Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Thu, 29 May 2025 10:09:02 +0800 Subject: [PATCH 08/20] [submodule] Update submodule sonic-gnmi to the latest HEAD automatically (#22740) #### Why I did it src/sonic-gnmi ``` * 6c04f75 - (HEAD -> 202411, origin/202411) Update agent-pool to use ubuntu 22.04 (#401) (2 hours ago) [mssonicbld] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-gnmi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-gnmi b/src/sonic-gnmi index 18657b9aba..6c04f75802 160000 --- a/src/sonic-gnmi +++ b/src/sonic-gnmi @@ -1 +1 @@ -Subproject commit 18657b9aba3c0c08564a062883e88a606a12594b +Subproject commit 6c04f758025296fe98ab570f3836eae5a8eb5944 From f212bcd7b4ceefd908de487891f298f1a5664781 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Sat, 31 May 2025 13:03:31 +0800 Subject: [PATCH 09/20] Adding default QoS configurations for Arista-7050CX3-32S-C28S4. (#22744) #### Why I did it The default QoS configuration for Arista-7050CX3-32S-C28S4 is not added. This change is fixing the issues. ##### Work item tracking - Microsoft ADO **(number only)**: #### How I did it Added the default QoS configurations for Arista-7050CX3-32S-C28S4. #### How to verify it #### Which release branch to backport (provide reason below if selected) - [ ] 201811 - [ ] 201911 - [ ] 202006 - [ ] 202012 - [ ] 202106 - [ ] 202111 - [ ] 202205 - [ ] 202211 - [ ] 202305 #### Tested branch (Please provide the tested image version) - [ ] - [ ] #### Description for the changelog #### Link to config_db schema for YANG module changes #### A picture of a cute animal (not mandatory but encouraged) --- .../BALANCED/buffers_defaults_t0.j2 | 59 ++++ .../BALANCED/buffers_defaults_t1.j2 | 46 +++ .../BALANCED/pg_profile_lookup.ini | 11 + .../BALANCED/qos.json.j2 | 285 ++++++++++++++++++ .../Arista-7050CX3-32S-C28S4/RDMA-CENTRIC | 1 + .../Arista-7050CX3-32S-C28S4/TCP-CENTRIC | 1 + .../Arista-7050CX3-32S-C28S4/buffers.json.j2 | 2 + .../buffers_defaults_t0.j2 | 1 + .../buffers_defaults_t1.j2 | 1 + .../buffers_extra_queues.j2 | 1 + .../pg_profile_lookup.ini | 1 + .../Arista-7050CX3-32S-C28S4/qos.json.j2 | 1 + 12 files changed, 410 insertions(+) create mode 100644 device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/buffers_defaults_t0.j2 create mode 100644 device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/buffers_defaults_t1.j2 create mode 100644 device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/pg_profile_lookup.ini create mode 100644 device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/qos.json.j2 create mode 120000 device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/RDMA-CENTRIC create mode 120000 device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/TCP-CENTRIC create mode 100644 device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers.json.j2 create mode 120000 device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers_defaults_t0.j2 create mode 120000 device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers_defaults_t1.j2 create mode 120000 device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers_extra_queues.j2 create mode 120000 device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/pg_profile_lookup.ini create mode 120000 device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/qos.json.j2 diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/buffers_defaults_t0.j2 new file mode 100644 index 0000000000..ba3e498830 --- /dev/null +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/buffers_defaults_t0.j2 @@ -0,0 +1,59 @@ +{%- set default_cable = '300m' %} + +{%- macro generate_port_lists(PORT_ALL) %} + {# Generate list of ports #} + {%- for port_idx in range(0,32) %} + {%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %} + {%- endfor %} +{%- endmacro %} + +{%- set ingress_lossless_pool_size = '32689152' %} +{%- set egress_lossless_pool_size = '32340992' %} +{%- if (DEVICE_METADATA is defined) and ('localhost' in DEVICE_METADATA) and ('subtype' in DEVICE_METADATA['localhost']) and (DEVICE_METADATA['localhost']['subtype'] == 'DualToR') %} + {%- set ingress_lossless_pool_size = '32441856' %} + {%- set egress_lossless_pool_size = '32441856' %} +{%- endif %} + +{%- macro generate_buffer_pool_and_profiles() %} + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "{{ingress_lossless_pool_size }}", + "type": "ingress", + "mode": "dynamic", + "xoff": "2058240" + }, + "egress_lossy_pool": { + "size": "24192256", + "type": "egress", + "mode": "dynamic" + }, + "egress_lossless_pool": { + "size": "{{egress_lossless_pool_size }}", + "type": "egress", + "mode": "static" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"ingress_lossless_pool", + "size":"0", + "static_th":"{{ingress_lossless_pool_size }}" + }, + "egress_lossless_profile": { + "pool":"egress_lossless_pool", + "size":"0", + "static_th":"{{egress_lossless_pool_size }}" + }, + "egress_lossy_profile": { + "pool":"egress_lossy_pool", + "size":"1792", + "dynamic_th":"3" + } + }, +{%- endmacro %} + +{% import 'buffers_extra_queues.j2' as defs with context %} + +{%- macro generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) %} +{{ defs.generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) }} +{%- endmacro %} diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/buffers_defaults_t1.j2 b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/buffers_defaults_t1.j2 new file mode 100644 index 0000000000..eb1dc510e9 --- /dev/null +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/buffers_defaults_t1.j2 @@ -0,0 +1,46 @@ +{%- set default_cable = '300m' %} + +{%- macro generate_port_lists(PORT_ALL) %} + {# Generate list of ports #} + {%- for port_idx in range(0,32) %} + {%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %} + {%- endfor %} +{%- endmacro %} + +{%- macro generate_buffer_pool_and_profiles() %} + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "32712448", + "type": "ingress", + "mode": "dynamic", + "xoff": "1622016" + }, + "egress_lossy_pool": { + "size": "24709632", + "type": "egress", + "mode": "dynamic" + }, + "egress_lossless_pool": { + "size": "32599040", + "type": "egress", + "mode": "static" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"ingress_lossless_pool", + "size":"0", + "static_th":"32712448" + }, + "egress_lossless_profile": { + "pool":"egress_lossless_pool", + "size":"0", + "static_th":"32599040" + }, + "egress_lossy_profile": { + "pool":"egress_lossy_pool", + "size":"1792", + "dynamic_th":"3" + } + }, +{%- endmacro %} diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/pg_profile_lookup.ini b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/pg_profile_lookup.ini new file mode 100644 index 0000000000..aaca1b9a4c --- /dev/null +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/pg_profile_lookup.ini @@ -0,0 +1,11 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 10000 5m 4608 4608 160000 0 4608 + 50000 5m 4608 4608 160000 0 4608 + 100000 5m 4608 4608 160000 0 4608 + 10000 40m 4608 4608 160000 0 4608 + 50000 40m 4608 4608 160000 0 4608 + 100000 40m 4608 4608 160000 0 4608 + 10000 300m 4608 4608 160000 0 4608 + 50000 300m 4608 4608 160000 0 4608 + 100000 300m 4608 4608 160000 0 4608 diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/qos.json.j2 b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/qos.json.j2 new file mode 100644 index 0000000000..74059a27d2 --- /dev/null +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/BALANCED/qos.json.j2 @@ -0,0 +1,285 @@ +{% if 'subtype' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['subtype'] == 'DualToR' %} +{% set different_dscp_to_tc_map = true %} +{% set different_tc_to_queue_map = true %} +{%- macro generate_dscp_to_tc_map() %} + "DSCP_TO_TC_MAP": { + "AZURE": { + "0" : "1", + "1" : "1", + "2" : "1", + "3" : "3", + "4" : "4", + "5" : "1", + "6" : "1", + "7" : "1", + "8" : "0", + "9" : "1", + "10": "1", + "11": "1", + "12": "1", + "13": "1", + "14": "1", + "15": "1", + "16": "1", + "17": "1", + "18": "1", + "19": "1", + "20": "1", + "21": "1", + "22": "1", + "23": "1", + "24": "1", + "25": "1", + "26": "1", + "27": "1", + "28": "1", + "29": "1", + "30": "1", + "31": "1", + "32": "1", + "33": "8", + "34": "1", + "35": "1", + "36": "1", + "37": "1", + "38": "1", + "39": "1", + "40": "1", + "41": "1", + "42": "1", + "43": "1", + "44": "1", + "45": "1", + "46": "5", + "47": "1", + "48": "7", + "49": "1", + "50": "1", + "51": "1", + "52": "1", + "53": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "58": "1", + "59": "1", + "60": "1", + "61": "1", + "62": "1", + "63": "1" + }, + "AZURE_UPLINK": { + "0" : "1", + "1" : "1", + "2" : "2", + "3" : "3", + "4" : "4", + "5" : "1", + "6" : "6", + "7" : "1", + "8" : "0", + "9" : "1", + "10": "1", + "11": "1", + "12": "1", + "13": "1", + "14": "1", + "15": "1", + "16": "1", + "17": "1", + "18": "1", + "19": "1", + "20": "1", + "21": "1", + "22": "1", + "23": "1", + "24": "1", + "25": "1", + "26": "1", + "27": "1", + "28": "1", + "29": "1", + "30": "1", + "31": "1", + "32": "1", + "33": "8", + "34": "1", + "35": "1", + "36": "1", + "37": "1", + "38": "1", + "39": "1", + "40": "1", + "41": "1", + "42": "1", + "43": "1", + "44": "1", + "45": "1", + "46": "5", + "47": "1", + "48": "7", + "49": "1", + "50": "1", + "51": "1", + "52": "1", + "53": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "58": "1", + "59": "1", + "60": "1", + "61": "1", + "62": "1", + "63": "1" + }, + "AZURE_TUNNEL": { + "0" : "1", + "1" : "1", + "2" : "1", + "3" : "3", + "4" : "4", + "5" : "1", + "6" : "1", + "7" : "1", + "8" : "0", + "9" : "1", + "10": "1", + "11": "1", + "12": "1", + "13": "1", + "14": "1", + "15": "1", + "16": "1", + "17": "1", + "18": "1", + "19": "1", + "20": "1", + "21": "1", + "22": "1", + "23": "1", + "24": "1", + "25": "1", + "26": "1", + "27": "1", + "28": "1", + "29": "1", + "30": "1", + "31": "1", + "32": "1", + "33": "8", + "34": "1", + "35": "1", + "36": "1", + "37": "1", + "38": "1", + "39": "1", + "40": "1", + "41": "1", + "42": "1", + "43": "1", + "44": "1", + "45": "1", + "46": "5", + "47": "1", + "48": "7", + "49": "1", + "50": "1", + "51": "1", + "52": "1", + "53": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "58": "1", + "59": "1", + "60": "1", + "61": "1", + "62": "1", + "63": "1" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_pg_map() %} + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "2", + "3": "3", + "4": "4", + "5": "0", + "6": "6", + "7": "0", + "8": "0" + }, + "AZURE_TUNNEL": { + "0": "0", + "1": "0", + "2": "0", + "3": "2", + "4": "6", + "5": "0", + "6": "0", + "7": "0", + "8": "0" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_queue_map() %} + "TC_TO_QUEUE_MAP": { + "AZURE": { + "0": "0", + "1": "1", + "2": "1", + "3": "3", + "4": "4", + "5": "5", + "6": "1", + "7": "7", + "8": "1" + }, + "AZURE_UPLINK": { + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "8": "1" + }, + "AZURE_TUNNEL": { + "0": "0", + "1": "1", + "2": "1", + "3": "2", + "4": "6", + "5": "5", + "6": "1", + "7": "7", + "8": "1" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_dscp_map() %} + "TC_TO_DSCP_MAP": { + "AZURE_TUNNEL": { + "0": "8", + "1": "0", + "2": "0", + "3": "2", + "4": "6", + "5": "46", + "6": "0", + "7": "48", + "8": "33" + } + }, +{%- endmacro %} +{% endif %} +{%- include 'qos_config.j2' %} diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/RDMA-CENTRIC b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/RDMA-CENTRIC new file mode 120000 index 0000000000..d6f7127aa7 --- /dev/null +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/RDMA-CENTRIC @@ -0,0 +1 @@ +BALANCED \ No newline at end of file diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/TCP-CENTRIC b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/TCP-CENTRIC new file mode 120000 index 0000000000..d6f7127aa7 --- /dev/null +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/TCP-CENTRIC @@ -0,0 +1 @@ +BALANCED \ No newline at end of file diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers.json.j2 b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers.json.j2 new file mode 100644 index 0000000000..1083a6210f --- /dev/null +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers.json.j2 @@ -0,0 +1,2 @@ +{%- set default_topo = 't0' %} +{%- include 'buffers_config.j2' %} diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers_defaults_t0.j2 new file mode 120000 index 0000000000..9524e6a476 --- /dev/null +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers_defaults_t0.j2 @@ -0,0 +1 @@ +BALANCED/buffers_defaults_t0.j2 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers_defaults_t1.j2 b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers_defaults_t1.j2 new file mode 120000 index 0000000000..c25cc95d6d --- /dev/null +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers_defaults_t1.j2 @@ -0,0 +1 @@ +BALANCED/buffers_defaults_t1.j2 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers_extra_queues.j2 b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers_extra_queues.j2 new file mode 120000 index 0000000000..2c4dff993c --- /dev/null +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/buffers_extra_queues.j2 @@ -0,0 +1 @@ +../Arista-7050CX3-32S-D48C8/buffers_extra_queues.j2 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/pg_profile_lookup.ini b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/pg_profile_lookup.ini new file mode 120000 index 0000000000..297cddb2d2 --- /dev/null +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/pg_profile_lookup.ini @@ -0,0 +1 @@ +BALANCED/pg_profile_lookup.ini \ No newline at end of file diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/qos.json.j2 b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/qos.json.j2 new file mode 120000 index 0000000000..aef6b6765c --- /dev/null +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C28S4/qos.json.j2 @@ -0,0 +1 @@ +BALANCED/qos.json.j2 \ No newline at end of file From 928671dbc16453a5456a59a7a846ba67b32e3eb1 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Tue, 3 Jun 2025 10:01:42 +0800 Subject: [PATCH 10/20] switch to use host syslog to for openbmp logging (#22817) #### Why I did it openbmp is using dedicated logging now, which has potential log spawn issue ##### Work item tracking - Microsoft ADO **(number only)**: 27588893 #### How I did it switch to use syslog and rotate will be done together with syslog. #### How to verify it verified on device which works fine ![image](https://github.com/user-attachments/assets/e91a89a0-0eb5-439c-af3c-84eea44b1bd8) ![image](https://github.com/user-attachments/assets/a4296a9b-c6f5-4976-8acf-fce6a0a1c9ed) #### Which release branch to backport (provide reason below if selected) - [ ] 201811 - [ ] 201911 - [ ] 202006 - [ ] 202012 - [ ] 202106 - [ ] 202111 - [ ] 202205 - [ ] 202211 - [ ] 202305 #### Tested branch (Please provide the tested image version) - [ ] - [ ] #### Description for the changelog #### Link to config_db schema for YANG module changes #### A picture of a cute animal (not mandatory but encouraged) --- dockers/docker-sonic-bmp/Dockerfile.j2 | 3 +-- dockers/docker-sonic-bmp/supervisord.conf | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/dockers/docker-sonic-bmp/Dockerfile.j2 b/dockers/docker-sonic-bmp/Dockerfile.j2 index 2e79001dbf..8b4fbbae06 100755 --- a/dockers/docker-sonic-bmp/Dockerfile.j2 +++ b/dockers/docker-sonic-bmp/Dockerfile.j2 @@ -40,11 +40,10 @@ COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor/"] RUN chmod +x /usr/bin/bmp.sh -RUN touch /var/log/openbmpd.log RUN apt-get clean -y && \ apt-get autoclean -y && \ apt-get autoremove -y && \ rm -rf /debs -ENTRYPOINT ["/usr/local/bin/supervisord"] \ No newline at end of file +ENTRYPOINT ["/usr/local/bin/supervisord"] diff --git a/dockers/docker-sonic-bmp/supervisord.conf b/dockers/docker-sonic-bmp/supervisord.conf index 6f9c7d56a8..8548d32fa3 100644 --- a/dockers/docker-sonic-bmp/supervisord.conf +++ b/dockers/docker-sonic-bmp/supervisord.conf @@ -49,7 +49,7 @@ stderr_logfile=syslog dependent_startup=true [program:openbmpd] -command=/usr/bin/openbmpd -f -l /var/log/openbmpd.log -c /etc/bmp/openbmpd.conf +command=/usr/bin/openbmpd -f -c /etc/bmp/openbmpd.conf priority=3 autostart=false autorestart=false From cb402c798581862bb8f9bf7facac529a5616ca2b Mon Sep 17 00:00:00 2001 From: Carmine Scarpitta Date: Wed, 4 Jun 2025 11:48:06 -0500 Subject: [PATCH 11/20] [FRR]: Fix SRv6 static SIDs delete crash Signed-off-by: Carmine Scarpitta --- .../0136-fix-srv6-static-sids-crash.patch | 222 ++++++++++++++++++ src/sonic-frr/patch/series | 1 + 2 files changed, 223 insertions(+) create mode 100644 src/sonic-frr/patch/0136-fix-srv6-static-sids-crash.patch diff --git a/src/sonic-frr/patch/0136-fix-srv6-static-sids-crash.patch b/src/sonic-frr/patch/0136-fix-srv6-static-sids-crash.patch new file mode 100644 index 0000000000..469b36bf9e --- /dev/null +++ b/src/sonic-frr/patch/0136-fix-srv6-static-sids-crash.patch @@ -0,0 +1,222 @@ +diff --git a/staticd/static_nb_config.c b/staticd/static_nb_config.c +index a702dc48f..b5c1ba972 100644 +--- a/staticd/static_nb_config.c ++++ b/staticd/static_nb_config.c +@@ -1490,8 +1490,15 @@ int routing_control_plane_protocols_control_plane_protocol_staticd_segment_routi + sid = nb_running_get_entry(args->dnode, NULL, true); + + /* Release and uninstall existing SID, if any, before requesting the new one */ +- static_zebra_release_srv6_sid(sid); +- static_zebra_srv6_sid_uninstall(sid); ++ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID)) { ++ static_zebra_release_srv6_sid(sid); ++ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID); ++ } ++ ++ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) { ++ static_zebra_srv6_sid_uninstall(sid); ++ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); ++ } + + sid->behavior = yang_dnode_get_enum(args->dnode, "../behavior"); + +@@ -1519,8 +1526,15 @@ int routing_control_plane_protocols_control_plane_protocol_staticd_segment_routi + sid = nb_running_get_entry(args->dnode, NULL, true); + + /* Release and uninstall existing SID, if any, before requesting the new one */ +- static_zebra_release_srv6_sid(sid); +- static_zebra_srv6_sid_uninstall(sid); ++ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID)) { ++ static_zebra_release_srv6_sid(sid); ++ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID); ++ } ++ ++ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) { ++ static_zebra_srv6_sid_uninstall(sid); ++ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); ++ } + + strncpy(sid->attributes.vrf_name, yang_dnode_get_string(args->dnode, "../vrf-name"), sizeof(sid->attributes.vrf_name)); + +@@ -1548,8 +1562,15 @@ int routing_control_plane_protocols_control_plane_protocol_staticd_segment_routi + sid = nb_running_get_entry(args->dnode, NULL, true); + + /* Release and uninstall existing SID, if any, before requesting the new one */ +- static_zebra_release_srv6_sid(sid); +- static_zebra_srv6_sid_uninstall(sid); ++ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID)) { ++ static_zebra_release_srv6_sid(sid); ++ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID); ++ } ++ ++ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) { ++ static_zebra_srv6_sid_uninstall(sid); ++ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); ++ } + + strncpy(sid->locator_name, yang_dnode_get_string(args->dnode, "../locator-name"), sizeof(sid->locator_name)); + +diff --git a/staticd/static_srv6.c b/staticd/static_srv6.c +index eabc8655f..f588019e8 100644 +--- a/staticd/static_srv6.c ++++ b/staticd/static_srv6.c +@@ -79,10 +79,13 @@ void static_ifp_srv6_sids_update(struct interface *ifp, bool is_up) + if (strcmp(sid->attributes.vrf_name, ifp->name) == 0 || + strncmp(ifp->name, "sr0", sizeof(ifp->name)) == 0 && + (sid->behavior == STATIC_SRV6_SID_BEHAVIOR_END || sid->behavior == STATIC_SRV6_SID_BEHAVIOR_UN)) +- if (is_up) +- static_zebra_srv6_sid_install(sid); +- else +- static_zebra_srv6_sid_uninstall(sid); ++ if (is_up) { ++ static_zebra_srv6_sid_install(sid); ++ SET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); ++ } else { ++ static_zebra_srv6_sid_uninstall(sid); ++ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); ++ } + } + } + +@@ -161,9 +164,15 @@ void delete_static_srv6_locator(void *val) + */ + void static_srv6_sid_del(struct static_srv6_sid *sid) + { +- // if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) ++ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID)) { + static_zebra_release_srv6_sid(sid); ++ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID); ++ } ++ ++ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) { + static_zebra_srv6_sid_uninstall(sid); ++ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); ++ } + + XFREE(MTYPE_STATIC_SRV6_SID, sid); + } +diff --git a/staticd/static_srv6.h b/staticd/static_srv6.h +index 9e9058b53..44c16aa55 100644 +--- a/staticd/static_srv6.h ++++ b/staticd/static_srv6.h +@@ -49,10 +49,13 @@ struct static_srv6_sid { + + /* SRv6 SID flags */ + uint8_t flags; +-/* this SRv6 SID is valid and can be installed in the zebra RIB */ ++/* ++ * this SRv6 SID has been allocated by SID Manager ++ * and can be installed in the zebra RIB ++ */ + #define STATIC_FLAG_SRV6_SID_VALID (1 << 0) + /* this SRv6 SID has been installed in the zebra RIB */ +-#define STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA (2 << 0) ++#define STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA (1 << 1) + + char locator_name[SRV6_LOCNAME_SIZE]; + struct static_srv6_locator *locator; +diff --git a/staticd/static_zebra.c b/staticd/static_zebra.c +index 594f1f783..78cda658f 100644 +--- a/staticd/static_zebra.c ++++ b/staticd/static_zebra.c +@@ -621,6 +621,9 @@ void static_zebra_srv6_sid_install(struct static_srv6_sid *sid) + if (!sid) + return; + ++ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) ++ return; ++ + zlog_info("setting SRv6 SID %pFX", + &sid->addr); + +@@ -737,6 +740,8 @@ void static_zebra_srv6_sid_install(struct static_srv6_sid *sid) + /* Send the SID to zebra */ + static_zebra_send_localsid(ZEBRA_ROUTE_ADD, &sid->addr.prefix, sid->addr.prefixlen, + ifp->ifindex, action, &ctx); ++ ++ SET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); + } + + void static_zebra_srv6_sid_uninstall(struct static_srv6_sid *sid) +@@ -752,6 +757,9 @@ void static_zebra_srv6_sid_uninstall(struct static_srv6_sid *sid) + if (!sid) + return; + ++ if (!CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) ++ return; ++ + zlog_info("delete SID %pFX", &sid->addr); + + if (!sid->locator) { +@@ -855,6 +863,8 @@ void static_zebra_srv6_sid_uninstall(struct static_srv6_sid *sid) + + static_zebra_send_localsid(ZEBRA_ROUTE_DELETE, &sid->addr.prefix, sid->addr.prefixlen, + ifp->ifindex, action, &ctx); ++ ++ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); + } + + extern void static_zebra_request_srv6_sid(struct static_srv6_sid *sid) +@@ -931,7 +941,7 @@ extern void static_zebra_release_srv6_sid(struct static_srv6_sid *sid) + struct vrf *vrf; + int ret = 0; + +- if (!sid) ++ if (!sid || !CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID)) + return; + + /* convert `static_srv6_sid_behavior_t` to `seg6local_action_t` */ +@@ -1136,9 +1146,14 @@ static int static_zebra_process_srv6_locator_delete(ZAPI_CALLBACK_ARGS) + locator->name, + &sid->addr); + +- /* Uninstall the SRv6 SID from the forwarding plane +- * through Zebra */ +- static_zebra_srv6_sid_uninstall(sid); ++ /* ++ * Uninstall the SRv6 SID from the forwarding plane ++ * through Zebra ++ */ ++ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) { ++ static_zebra_srv6_sid_uninstall(sid); ++ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); ++ } + } + + listnode_delete(srv6_locators, locator); +@@ -1194,16 +1209,34 @@ static int static_zebra_srv6_sid_notify(ZAPI_CALLBACK_ARGS) + return 0; + } + ++ SET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID); ++ + /* + * Install the new SRv6 End SID in the forwarding plane through + * Zebra + */ + static_zebra_srv6_sid_install(sid); +- ++ ++ SET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); ++ + break; + case ZAPI_SRV6_SID_RELEASED: + zlog_info("SRv6 SID %pI6 %s: RELEASED", &sid_addr, + srv6_sid_ctx2str(buf, sizeof(buf), &ctx)); ++ ++ for (ALL_LIST_ELEMENTS_RO(srv6_sids, node, sid)) { ++ if (IPV6_ADDR_SAME(&sid->addr.prefix, &sid_addr)) { ++ found = true; ++ break; ++ } ++ } ++ ++ if (!found || !sid) { ++ return 0; ++ } ++ ++ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID); ++ + break; + case ZAPI_SRV6_SID_FAIL_ALLOC: + zlog_info("SRv6 SID %pI6 %s: Failed to allocate", diff --git a/src/sonic-frr/patch/series b/src/sonic-frr/patch/series index a925aaaff9..146776520c 100644 --- a/src/sonic-frr/patch/series +++ b/src/sonic-frr/patch/series @@ -115,3 +115,4 @@ 0133-zebra-Prevent-active-setting-if-interface-is-not-ope.patch 0134-zebra-Add-nexthop-group-id-to-route-dump.patch 0135-zebra-Display-interface-name-not-ifindex-in-nh-dump.patch +0136-fix-srv6-static-sids-crash.patch From 1b90ab9f884364ca8f0b0676496612c9d3c64bda Mon Sep 17 00:00:00 2001 From: Carmine Scarpitta Date: Thu, 5 Jun 2025 05:44:02 -0500 Subject: [PATCH 12/20] Address review comments Signed-off-by: Carmine Scarpitta --- .../0136-fix-srv6-static-sids-crash.patch | 222 ------------------ ...ds-flags-to-prevent-double-uninstall.patch | 82 +++++++ src/sonic-frr/patch/series | 2 +- 3 files changed, 83 insertions(+), 223 deletions(-) delete mode 100644 src/sonic-frr/patch/0136-fix-srv6-static-sids-crash.patch create mode 100644 src/sonic-frr/patch/0136-use-srv6-static-sids-flags-to-prevent-double-uninstall.patch diff --git a/src/sonic-frr/patch/0136-fix-srv6-static-sids-crash.patch b/src/sonic-frr/patch/0136-fix-srv6-static-sids-crash.patch deleted file mode 100644 index 469b36bf9e..0000000000 --- a/src/sonic-frr/patch/0136-fix-srv6-static-sids-crash.patch +++ /dev/null @@ -1,222 +0,0 @@ -diff --git a/staticd/static_nb_config.c b/staticd/static_nb_config.c -index a702dc48f..b5c1ba972 100644 ---- a/staticd/static_nb_config.c -+++ b/staticd/static_nb_config.c -@@ -1490,8 +1490,15 @@ int routing_control_plane_protocols_control_plane_protocol_staticd_segment_routi - sid = nb_running_get_entry(args->dnode, NULL, true); - - /* Release and uninstall existing SID, if any, before requesting the new one */ -- static_zebra_release_srv6_sid(sid); -- static_zebra_srv6_sid_uninstall(sid); -+ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID)) { -+ static_zebra_release_srv6_sid(sid); -+ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID); -+ } -+ -+ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) { -+ static_zebra_srv6_sid_uninstall(sid); -+ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); -+ } - - sid->behavior = yang_dnode_get_enum(args->dnode, "../behavior"); - -@@ -1519,8 +1526,15 @@ int routing_control_plane_protocols_control_plane_protocol_staticd_segment_routi - sid = nb_running_get_entry(args->dnode, NULL, true); - - /* Release and uninstall existing SID, if any, before requesting the new one */ -- static_zebra_release_srv6_sid(sid); -- static_zebra_srv6_sid_uninstall(sid); -+ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID)) { -+ static_zebra_release_srv6_sid(sid); -+ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID); -+ } -+ -+ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) { -+ static_zebra_srv6_sid_uninstall(sid); -+ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); -+ } - - strncpy(sid->attributes.vrf_name, yang_dnode_get_string(args->dnode, "../vrf-name"), sizeof(sid->attributes.vrf_name)); - -@@ -1548,8 +1562,15 @@ int routing_control_plane_protocols_control_plane_protocol_staticd_segment_routi - sid = nb_running_get_entry(args->dnode, NULL, true); - - /* Release and uninstall existing SID, if any, before requesting the new one */ -- static_zebra_release_srv6_sid(sid); -- static_zebra_srv6_sid_uninstall(sid); -+ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID)) { -+ static_zebra_release_srv6_sid(sid); -+ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID); -+ } -+ -+ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) { -+ static_zebra_srv6_sid_uninstall(sid); -+ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); -+ } - - strncpy(sid->locator_name, yang_dnode_get_string(args->dnode, "../locator-name"), sizeof(sid->locator_name)); - -diff --git a/staticd/static_srv6.c b/staticd/static_srv6.c -index eabc8655f..f588019e8 100644 ---- a/staticd/static_srv6.c -+++ b/staticd/static_srv6.c -@@ -79,10 +79,13 @@ void static_ifp_srv6_sids_update(struct interface *ifp, bool is_up) - if (strcmp(sid->attributes.vrf_name, ifp->name) == 0 || - strncmp(ifp->name, "sr0", sizeof(ifp->name)) == 0 && - (sid->behavior == STATIC_SRV6_SID_BEHAVIOR_END || sid->behavior == STATIC_SRV6_SID_BEHAVIOR_UN)) -- if (is_up) -- static_zebra_srv6_sid_install(sid); -- else -- static_zebra_srv6_sid_uninstall(sid); -+ if (is_up) { -+ static_zebra_srv6_sid_install(sid); -+ SET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); -+ } else { -+ static_zebra_srv6_sid_uninstall(sid); -+ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); -+ } - } - } - -@@ -161,9 +164,15 @@ void delete_static_srv6_locator(void *val) - */ - void static_srv6_sid_del(struct static_srv6_sid *sid) - { -- // if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) -+ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID)) { - static_zebra_release_srv6_sid(sid); -+ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID); -+ } -+ -+ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) { - static_zebra_srv6_sid_uninstall(sid); -+ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); -+ } - - XFREE(MTYPE_STATIC_SRV6_SID, sid); - } -diff --git a/staticd/static_srv6.h b/staticd/static_srv6.h -index 9e9058b53..44c16aa55 100644 ---- a/staticd/static_srv6.h -+++ b/staticd/static_srv6.h -@@ -49,10 +49,13 @@ struct static_srv6_sid { - - /* SRv6 SID flags */ - uint8_t flags; --/* this SRv6 SID is valid and can be installed in the zebra RIB */ -+/* -+ * this SRv6 SID has been allocated by SID Manager -+ * and can be installed in the zebra RIB -+ */ - #define STATIC_FLAG_SRV6_SID_VALID (1 << 0) - /* this SRv6 SID has been installed in the zebra RIB */ --#define STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA (2 << 0) -+#define STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA (1 << 1) - - char locator_name[SRV6_LOCNAME_SIZE]; - struct static_srv6_locator *locator; -diff --git a/staticd/static_zebra.c b/staticd/static_zebra.c -index 594f1f783..78cda658f 100644 ---- a/staticd/static_zebra.c -+++ b/staticd/static_zebra.c -@@ -621,6 +621,9 @@ void static_zebra_srv6_sid_install(struct static_srv6_sid *sid) - if (!sid) - return; - -+ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) -+ return; -+ - zlog_info("setting SRv6 SID %pFX", - &sid->addr); - -@@ -737,6 +740,8 @@ void static_zebra_srv6_sid_install(struct static_srv6_sid *sid) - /* Send the SID to zebra */ - static_zebra_send_localsid(ZEBRA_ROUTE_ADD, &sid->addr.prefix, sid->addr.prefixlen, - ifp->ifindex, action, &ctx); -+ -+ SET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); - } - - void static_zebra_srv6_sid_uninstall(struct static_srv6_sid *sid) -@@ -752,6 +757,9 @@ void static_zebra_srv6_sid_uninstall(struct static_srv6_sid *sid) - if (!sid) - return; - -+ if (!CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) -+ return; -+ - zlog_info("delete SID %pFX", &sid->addr); - - if (!sid->locator) { -@@ -855,6 +863,8 @@ void static_zebra_srv6_sid_uninstall(struct static_srv6_sid *sid) - - static_zebra_send_localsid(ZEBRA_ROUTE_DELETE, &sid->addr.prefix, sid->addr.prefixlen, - ifp->ifindex, action, &ctx); -+ -+ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); - } - - extern void static_zebra_request_srv6_sid(struct static_srv6_sid *sid) -@@ -931,7 +941,7 @@ extern void static_zebra_release_srv6_sid(struct static_srv6_sid *sid) - struct vrf *vrf; - int ret = 0; - -- if (!sid) -+ if (!sid || !CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID)) - return; - - /* convert `static_srv6_sid_behavior_t` to `seg6local_action_t` */ -@@ -1136,9 +1146,14 @@ static int static_zebra_process_srv6_locator_delete(ZAPI_CALLBACK_ARGS) - locator->name, - &sid->addr); - -- /* Uninstall the SRv6 SID from the forwarding plane -- * through Zebra */ -- static_zebra_srv6_sid_uninstall(sid); -+ /* -+ * Uninstall the SRv6 SID from the forwarding plane -+ * through Zebra -+ */ -+ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) { -+ static_zebra_srv6_sid_uninstall(sid); -+ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); -+ } - } - - listnode_delete(srv6_locators, locator); -@@ -1194,16 +1209,34 @@ static int static_zebra_srv6_sid_notify(ZAPI_CALLBACK_ARGS) - return 0; - } - -+ SET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID); -+ - /* - * Install the new SRv6 End SID in the forwarding plane through - * Zebra - */ - static_zebra_srv6_sid_install(sid); -- -+ -+ SET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); -+ - break; - case ZAPI_SRV6_SID_RELEASED: - zlog_info("SRv6 SID %pI6 %s: RELEASED", &sid_addr, - srv6_sid_ctx2str(buf, sizeof(buf), &ctx)); -+ -+ for (ALL_LIST_ELEMENTS_RO(srv6_sids, node, sid)) { -+ if (IPV6_ADDR_SAME(&sid->addr.prefix, &sid_addr)) { -+ found = true; -+ break; -+ } -+ } -+ -+ if (!found || !sid) { -+ return 0; -+ } -+ -+ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID); -+ - break; - case ZAPI_SRV6_SID_FAIL_ALLOC: - zlog_info("SRv6 SID %pI6 %s: Failed to allocate", diff --git a/src/sonic-frr/patch/0136-use-srv6-static-sids-flags-to-prevent-double-uninstall.patch b/src/sonic-frr/patch/0136-use-srv6-static-sids-flags-to-prevent-double-uninstall.patch new file mode 100644 index 0000000000..32e87bb577 --- /dev/null +++ b/src/sonic-frr/patch/0136-use-srv6-static-sids-flags-to-prevent-double-uninstall.patch @@ -0,0 +1,82 @@ +diff --git a/staticd/static_srv6.h b/staticd/static_srv6.h +index 9e9058b53..fa6e6d2d3 100644 +--- a/staticd/static_srv6.h ++++ b/staticd/static_srv6.h +@@ -52,7 +52,7 @@ struct static_srv6_sid { + /* this SRv6 SID is valid and can be installed in the zebra RIB */ + #define STATIC_FLAG_SRV6_SID_VALID (1 << 0) + /* this SRv6 SID has been installed in the zebra RIB */ +-#define STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA (2 << 0) ++#define STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA (1 << 1) + + char locator_name[SRV6_LOCNAME_SIZE]; + struct static_srv6_locator *locator; +diff --git a/staticd/static_zebra.c b/staticd/static_zebra.c +index 594f1f783..74668282b 100644 +--- a/staticd/static_zebra.c ++++ b/staticd/static_zebra.c +@@ -621,6 +621,9 @@ void static_zebra_srv6_sid_install(struct static_srv6_sid *sid) + if (!sid) + return; + ++ if (CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) ++ return; ++ + zlog_info("setting SRv6 SID %pFX", + &sid->addr); + +@@ -737,6 +740,8 @@ void static_zebra_srv6_sid_install(struct static_srv6_sid *sid) + /* Send the SID to zebra */ + static_zebra_send_localsid(ZEBRA_ROUTE_ADD, &sid->addr.prefix, sid->addr.prefixlen, + ifp->ifindex, action, &ctx); ++ ++ SET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); + } + + void static_zebra_srv6_sid_uninstall(struct static_srv6_sid *sid) +@@ -752,6 +757,9 @@ void static_zebra_srv6_sid_uninstall(struct static_srv6_sid *sid) + if (!sid) + return; + ++ if (!CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA)) ++ return; ++ + zlog_info("delete SID %pFX", &sid->addr); + + if (!sid->locator) { +@@ -855,6 +863,8 @@ void static_zebra_srv6_sid_uninstall(struct static_srv6_sid *sid) + + static_zebra_send_localsid(ZEBRA_ROUTE_DELETE, &sid->addr.prefix, sid->addr.prefixlen, + ifp->ifindex, action, &ctx); ++ ++ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_SENT_TO_ZEBRA); + } + + extern void static_zebra_request_srv6_sid(struct static_srv6_sid *sid) +@@ -931,7 +941,7 @@ extern void static_zebra_release_srv6_sid(struct static_srv6_sid *sid) + struct vrf *vrf; + int ret = 0; + +- if (!sid) ++ if (!sid || !CHECK_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID)) + return; + + /* convert `static_srv6_sid_behavior_t` to `seg6local_action_t` */ +@@ -990,6 +1000,8 @@ extern void static_zebra_release_srv6_sid(struct static_srv6_sid *sid) + flog_err(EC_LIB_ZAPI_SOCKET, + "zclient_send_get_srv6_sid() delete failed: %s", + safe_strerror(errno)); ++ ++ UNSET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID); + } + + /** +@@ -1194,6 +1206,8 @@ static int static_zebra_srv6_sid_notify(ZAPI_CALLBACK_ARGS) + return 0; + } + ++ SET_FLAG(sid->flags, STATIC_FLAG_SRV6_SID_VALID); ++ + /* + * Install the new SRv6 End SID in the forwarding plane through + * Zebra diff --git a/src/sonic-frr/patch/series b/src/sonic-frr/patch/series index 146776520c..096d9d6c26 100644 --- a/src/sonic-frr/patch/series +++ b/src/sonic-frr/patch/series @@ -115,4 +115,4 @@ 0133-zebra-Prevent-active-setting-if-interface-is-not-ope.patch 0134-zebra-Add-nexthop-group-id-to-route-dump.patch 0135-zebra-Display-interface-name-not-ifindex-in-nh-dump.patch -0136-fix-srv6-static-sids-crash.patch +0136-use-srv6-static-sids-flags-to-prevent-double-uninstall.patch From 221fdbaa14b3fb8c76e37fab4d54e72b2a8eedf1 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Fri, 6 Jun 2025 10:01:30 +0800 Subject: [PATCH 13/20] [submodule] Update submodule sonic-swss-common to the latest HEAD automatically (#22858) #### Why I did it src/sonic-swss-common ``` * d38e6d9 - (HEAD -> 202411, origin/202411) [build] deprecate ubuntu 20.04 agent pool. (#1021) (9 hours ago) [mssonicbld] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-swss-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss-common b/src/sonic-swss-common index 3bc4141190..d38e6d9fc7 160000 --- a/src/sonic-swss-common +++ b/src/sonic-swss-common @@ -1 +1 @@ -Subproject commit 3bc41411904db60a8e711fa72acb49005983bf26 +Subproject commit d38e6d9fc7a62d77dc5964fea33dfd6d45b84cbe From 66690b60da90fde30f81baeaf5c14d1f68ed605e Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Fri, 6 Jun 2025 10:01:34 +0800 Subject: [PATCH 14/20] [submodule] Update submodule sonic-swss to the latest HEAD automatically (#22857) #### Why I did it src/sonic-swss ``` * 9c3daaed - (HEAD -> 202411, origin/202411) [202411][muxorch] Catch error when checking active state of missing neighbor (4 minutes ago) [Kumaresh Perumal] |\ | failure_prs.log 0a1e41e1 - [muxorch] Catch error when checking active state of missing neighbor (23 hours ago) [Nikola Dancejic] * cc0255bf - Update swss pipeline to use ubuntu 22.04 agent pool (#3677) (9 hours ago) [mssonicbld] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-swss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss b/src/sonic-swss index 623b018651..9c3daaed9f 160000 --- a/src/sonic-swss +++ b/src/sonic-swss @@ -1 +1 @@ -Subproject commit 623b01865116a4433cc364a4cc43e3def6076022 +Subproject commit 9c3daaed9f977d3f41eac5178ef42e03d45e3ce8 From 81dd34b9616d5f117780913c4eda5541ee8bf7e5 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Sun, 8 Jun 2025 19:01:12 +0800 Subject: [PATCH 15/20] [submodule] Update submodule sonic-swss to the latest HEAD automatically (#22883) #### Why I did it src/sonic-swss ``` * c238a52a - (HEAD -> 202411, origin/202411) Fix indentation in template file (#3694) (22 hours ago) [mssonicbld] * b12c1285 - [202411][test_mux] fix vstest multi-mux (#3692) (25 hours ago) [Nikola Dancejic] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-swss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss b/src/sonic-swss index 9c3daaed9f..c238a52a1e 160000 --- a/src/sonic-swss +++ b/src/sonic-swss @@ -1 +1 @@ -Subproject commit 9c3daaed9f977d3f41eac5178ef42e03d45e3ce8 +Subproject commit c238a52a1e4e0b472d1af960185b4fca71929db1 From 8081aeca2b82f46d98d0b2bf34873f4efd1e6a77 Mon Sep 17 00:00:00 2001 From: Ryan Garofano Date: Thu, 12 Jun 2025 10:56:18 -0700 Subject: [PATCH 16/20] Fix info and order of components for 7060x6_64pe_b (#1231) #### Why I did it `sonic-mgmt/tests/platform_tests/api/test_component.py` was failing due to an order mismatch between the `platform.json` file and our component API implementation. Since the two are not linked together we need to update the json files with the correct order. ##### Work item tracking - Microsoft ADO **(number only)**: #### How I did it Modified `platform.json` and `platform_components.json` with the correct info and order for the components. #### How to verify it Verified by running `sonic-mgmt/tests/platform_tests/api/test_component.py` with and without the change on a x86_64-arista_7060x6_64pe_b switch. With the change `test_get_name` no longer fails. #### Which release branch to backport (provide reason below if selected) - [ ] 202205 - [ ] 202211 - [ ] 202305 - [ ] 202311 - [ ] 202405 - [ ] 202411 - [ ] 202505 - [x] msft-202412 #### Tested branch (Please provide the tested image version) - [ ] - [ ] #### Description for the changelog #### Link to config_db schema for YANG module changes --- device/arista/x86_64-arista_7060x6_64pe_b/platform.json | 6 +++--- .../x86_64-arista_7060x6_64pe_b/platform_components.json | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/device/arista/x86_64-arista_7060x6_64pe_b/platform.json b/device/arista/x86_64-arista_7060x6_64pe_b/platform.json index 16faa5bf8a..fd20c19bb2 100644 --- a/device/arista/x86_64-arista_7060x6_64pe_b/platform.json +++ b/device/arista/x86_64-arista_7060x6_64pe_b/platform.json @@ -6,13 +6,13 @@ "name": "Aboot()" }, { - "name": "Scd(addr=0000:04:00.0)" + "name": "Scd(addr=0000:03:00.0)" }, { - "name": "Scd(addr=0000:08:00.0)" + "name": "RedstartSysCpld(addr=13-0023)" }, { - "name": "RedstartSysCpld(addr=13-0023)" + "name": "Scd(addr=0000:05:00.0)" } ], "fans": [], diff --git a/device/arista/x86_64-arista_7060x6_64pe_b/platform_components.json b/device/arista/x86_64-arista_7060x6_64pe_b/platform_components.json index baca89fafe..c8c2582658 100644 --- a/device/arista/x86_64-arista_7060x6_64pe_b/platform_components.json +++ b/device/arista/x86_64-arista_7060x6_64pe_b/platform_components.json @@ -3,9 +3,9 @@ "DCS-7060X6-64PE-B": { "component": { "Aboot()": {}, - "Scd(addr=0000:04:00.0)": {}, - "Scd(addr=0000:08:00.0)": {}, - "RedstartSysCpld(addr=13-0023)": {} + "Scd(addr=0000:03:00.0)": {}, + "RedstartSysCpld(addr=13-0023)": {}, + "Scd(addr=0000:05:00.0)": {} } } } From c20f188ef5495b1906ee4fe26afcd4fc186b49d2 Mon Sep 17 00:00:00 2001 From: rick-arista <148895369+rick-arista@users.noreply.github.com> Date: Thu, 12 Jun 2025 11:00:42 -0700 Subject: [PATCH 17/20] Add qos values for Arista-7060X6-16PE-384C-O128S2 TH5-512 (#1220) #### Why I did it Add qos values for Arista-7060X6-16PE-384C-O128S2 TH5-512 ##### Work item tracking - Microsoft ADO **(number only)**: #### How I did it #### How to verify it #### Which release branch to backport (provide reason below if selected) - [ ] 201811 - [ ] 201911 - [ ] 202006 - [ ] 202012 - [ ] 202106 - [ ] 202111 - [ ] 202205 - [ ] 202211 #### Tested branch (Please provide the tested image version) - [ ] - [ ] #### Description for the changelog #### Link to config_db schema for YANG module changes #### A picture of a cute animal (not mandatory but encouraged) --- .../Arista-7060X6-16PE-384C-O128S2/BALANCED | 1 - .../buffer_ports.j2 | 7 +- .../buffers.json.j2 | 3 +- .../buffers_defaults_t0.j2 | 37 +- .../buffers_defaults_t1.j2 | 37 +- .../pg_profile_lookup.ini | 5 +- .../qos.json.j2 | 2 +- .../th5-a7060x6-16pe-384c.config.bcm | 1155 ++++++++++++++++- 8 files changed, 1232 insertions(+), 15 deletions(-) delete mode 120000 device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/BALANCED mode change 120000 => 100644 device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffer_ports.j2 mode change 120000 => 100644 device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers.json.j2 mode change 120000 => 100644 device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers_defaults_t0.j2 mode change 120000 => 100644 device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers_defaults_t1.j2 mode change 120000 => 100644 device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/pg_profile_lookup.ini mode change 120000 => 100644 device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/qos.json.j2 diff --git a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/BALANCED b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/BALANCED deleted file mode 120000 index afd21766cc..0000000000 --- a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/BALANCED +++ /dev/null @@ -1 +0,0 @@ -../../../common/profiles/th5/gen/BALANCED \ No newline at end of file diff --git a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffer_ports.j2 b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffer_ports.j2 deleted file mode 120000 index 35b3dd5d13..0000000000 --- a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffer_ports.j2 +++ /dev/null @@ -1 +0,0 @@ -../../x86_64-arista_7060x6_64pe/Arista-7060X6-64PE-64x400G/buffer_ports.j2 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffer_ports.j2 b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffer_ports.j2 new file mode 100644 index 0000000000..725347049c --- /dev/null +++ b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffer_ports.j2 @@ -0,0 +1,6 @@ +{%- macro generate_port_lists(PORT_ALL) %} + {# Generate list of ports #} + {%- for port_idx in range(0, 512, 4) %} + {%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %} + {%- endfor %} +{%- endmacro %} diff --git a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers.json.j2 b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers.json.j2 deleted file mode 120000 index 8658b687e2..0000000000 --- a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers.json.j2 +++ /dev/null @@ -1 +0,0 @@ -../../x86_64-arista_7060x6_64pe/Arista-7060X6-64PE-64x400G/buffers.json.j2 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers.json.j2 b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers.json.j2 new file mode 100644 index 0000000000..1083a6210f --- /dev/null +++ b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers.json.j2 @@ -0,0 +1,2 @@ +{%- set default_topo = 't0' %} +{%- include 'buffers_config.j2' %} diff --git a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers_defaults_t0.j2 deleted file mode 120000 index 9524e6a476..0000000000 --- a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers_defaults_t0.j2 +++ /dev/null @@ -1 +0,0 @@ -BALANCED/buffers_defaults_t0.j2 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers_defaults_t0.j2 new file mode 100644 index 0000000000..cbece494f9 --- /dev/null +++ b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers_defaults_t0.j2 @@ -0,0 +1,36 @@ +{%- set default_cable = '5m' %} + +{%- include 'buffer_ports.j2' %} + +{%- macro generate_buffer_pool_and_profiles() %} + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "164075364", + "type": "ingress", + "mode": "dynamic", + "xoff": "20181824" + }, + "egress_lossless_pool": { + "size": "164075364", + "type": "egress", + "mode": "static" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool": "ingress_lossless_pool", + "size": "0", + "static_th": "165364160" + }, + "egress_lossy_profile": { + "pool": "egress_lossless_pool", + "size": "1778", + "dynamic_th": "0" + }, + "egress_lossless_profile": { + "pool": "egress_lossless_pool", + "size": "0", + "static_th": "165364160" + } + }, +{%- endmacro %} diff --git a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers_defaults_t1.j2 b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers_defaults_t1.j2 deleted file mode 120000 index c25cc95d6d..0000000000 --- a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers_defaults_t1.j2 +++ /dev/null @@ -1 +0,0 @@ -BALANCED/buffers_defaults_t1.j2 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers_defaults_t1.j2 b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers_defaults_t1.j2 new file mode 100644 index 0000000000..cbece494f9 --- /dev/null +++ b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/buffers_defaults_t1.j2 @@ -0,0 +1,36 @@ +{%- set default_cable = '5m' %} + +{%- include 'buffer_ports.j2' %} + +{%- macro generate_buffer_pool_and_profiles() %} + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "164075364", + "type": "ingress", + "mode": "dynamic", + "xoff": "20181824" + }, + "egress_lossless_pool": { + "size": "164075364", + "type": "egress", + "mode": "static" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool": "ingress_lossless_pool", + "size": "0", + "static_th": "165364160" + }, + "egress_lossy_profile": { + "pool": "egress_lossless_pool", + "size": "1778", + "dynamic_th": "0" + }, + "egress_lossless_profile": { + "pool": "egress_lossless_pool", + "size": "0", + "static_th": "165364160" + } + }, +{%- endmacro %} diff --git a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/pg_profile_lookup.ini b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/pg_profile_lookup.ini deleted file mode 120000 index 297cddb2d2..0000000000 --- a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/pg_profile_lookup.ini +++ /dev/null @@ -1 +0,0 @@ -BALANCED/pg_profile_lookup.ini \ No newline at end of file diff --git a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/pg_profile_lookup.ini b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/pg_profile_lookup.ini new file mode 100644 index 0000000000..12028bb022 --- /dev/null +++ b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/pg_profile_lookup.ini @@ -0,0 +1,4 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset +400000 5m 18796 0 393192 0 3556 +400000 40m 18796 0 445770 0 3556 diff --git a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/qos.json.j2 b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/qos.json.j2 deleted file mode 120000 index 1d89e90b05..0000000000 --- a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/qos.json.j2 +++ /dev/null @@ -1 +0,0 @@ -../../x86_64-arista_7060x6_64pe/Arista-7060X6-64PE-64x400G/qos.json.j2 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/qos.json.j2 b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/qos.json.j2 new file mode 100644 index 0000000000..3e548325ea --- /dev/null +++ b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/qos.json.j2 @@ -0,0 +1 @@ +{%- include 'qos_config.j2' %} diff --git a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/th5-a7060x6-16pe-384c.config.bcm b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/th5-a7060x6-16pe-384c.config.bcm index 254d8e0a1b..a8b15f1e83 100644 --- a/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/th5-a7060x6-16pe-384c.config.bcm +++ b/device/arista/x86_64-arista_7060x6_16pe_384c_b/Arista-7060X6-16PE-384C-O128S2/th5-a7060x6-16pe-384c.config.bcm @@ -1,8 +1,7 @@ # -# $Copyright: (c) 2022 Broadcom. -# Broadcom Proprietary and Confidential. All rights reserved.$ +# $Copyright: Broadcom Ltd.$ # -# BCM78900 64x800g port configuration. +# BCM78907 128x400g port configuration. # # configuration yaml file # device: @@ -19,7 +18,6 @@ # ... # : # - --- bcm_device: 0: @@ -34,7 +32,6 @@ bcm_device: l3_alpm_template: 1 l3_alpm_hit_skip: 1 sai_feat_tail_timestamp : 1 - sai_mmu_default_cpu_config : 1 sai_port_phy_time_sync_en : 1 sai_field_group_auto_prioritize: 1 #l3_intf_vlan_split_egress for MTU at L3IF @@ -43,6 +40,9 @@ bcm_device: sai_tunnel_support: 2 bcm_tunnel_term_compatible_mode: 1 l3_ecmp_member_first_lkup_mem_size: 12288 + l3_alpm_large_vrf_mode: 1 + l3_ecmp_member_secondary_mem_size: 4096 + sai_mmu_custom_config: 1 stat_custom_receive0_management_mode: 1 --- device: @@ -1397,19 +1397,23 @@ device: FEC_MODE: PC_FEC_RS544_2XN MAX_FRAME_SIZE: 9416 ? - PORT_ID: [[118, 118], [254, 254]] + PORT_ID: [118, 254] : ENABLE: 0 - MAX_FRAME_SIZE: 9416 SPEED: 10000 NUM_LANES: 1 + MAX_FRAME_SIZE: 9416 ... --- bcm_device: 0: global: ftem_mem_entries: 65536 + #enable port queue drop stats sai_stats_support_mask: 0 + #disable vxlan tunnel stats + sai_stats_disable_mask: 0x200 + #For PPIU Mode, Set resources for counters in global mode counters like ACL, etc global_flexctr_ing_action_num_reserved: 20 global_flexctr_ing_pool_num_reserved: 8 global_flexctr_ing_op_profile_num_reserved: 20 @@ -1422,13 +1426,16 @@ bcm_device: --- device: 0: - # Per pipe flex counter configuration + # Per pipe flex counter configuration. Enable PPIU Mode CTR_EFLEX_CONFIG: CTR_ING_EFLEX_OPERMODE_PIPEUNIQUE: 1 CTR_ING_EFLEX_OPERMODE_PIPE_INSTANCE_UNIQUE: 1 CTR_EGR_EFLEX_OPERMODE_PIPEUNIQUE: 1 CTR_EGR_EFLEX_OPERMODE_PIPE_INSTANCE_UNIQUE: 1 + TM_SCHEDULER_CONFIG: + DYNAMIC_VOQ: 0 + # IFP mode FP_CONFIG: FP_ING_OPERMODE: GLOBAL_PIPE_AWARE @@ -1439,4 +1446,1136 @@ device: DEVICE_CONFIG: AUTOLOAD_BOARD_SETTINGS: 0 ... +### Baseline +# Skipping buffer reservation. This means that don't use SDK default setings. +--- +device: + 0: + TM_THD_CONFIG: + MIRROR_ON_DROP_RESERVATION: 0 + SKIP_BUFFER_RESERVATION: 1 + THRESHOLD_MODE: LOSSY_AND_LOSSLESS + + TM_SCHEDULER_CONFIG: + NUM_MC_Q: NUM_MC_Q_4 +... +# Initialize the various thresholds to zero +--- +# Ingress service pool level initialization +device: + 0: + # Ingress service pool + TM_ING_THD_SERVICE_POOL: + ? + BUFFER_POOL: [0,1] + TM_ING_SERVICE_POOL_ID: [[0,3]] + : + COLOR_SPECIFIC_LIMITS: 0 + SHARED_LIMIT_CELLS: 0 + SHARED_RESUME_OFFSET_CELLS: 0 + YELLOW_OFFSET_CELLS: 0 + RED_OFFSET_CELLS: 0 + + # Ingress headroom pool + TM_ING_THD_HEADROOM_POOL: + ? + BUFFER_POOL: [0,1] + TM_HEADROOM_POOL_ID: [[0,3]] + : + LIMIT_CELLS: 0 +... +# Ingress priority to PG mappings +--- +device: + 0: + # priority to PG mapping for UC traffic, 8 profiles (IDs), 16 priorties + TM_ING_UC_ING_PRI_MAP: + ? + # Profile 0 + TM_ING_UC_ING_PRI_MAP_ID: [0,7] + ING_PRI: [0,15] + : + TM_PRI_GRP_ID: 0 + + # priority to PG mapping for MC traffic, 8 profiles( IDs) 16 priorities + TM_ING_NONUC_ING_PRI_MAP: + ? + # Profile 0 + TM_ING_NONUC_ING_PRI_MAP_ID: [0,7] + ING_PRI: [0,15] + : + TM_PRI_GRP_ID: 0 + + TM_PRI_GRP_POOL_MAP: + ? + TM_PRI_GRP_POOL_MAP_ID: [0,7] + TM_PRI_GRP_ID: [[0,7]] + : + TM_ING_SERVICE_POOL_ID: 0 + TM_HEADROOM_POOL_ID: 0 + + # PFC generation: Priority group(s) + TM_PFC_PRI_TO_PRI_GRP_MAP: + ? + TM_PFC_PRI_TO_PRI_GRP_MAP_ID: [0,7] + PFC_PRI: [0,7] + : + TM_PRI_GRP_ID: 0 +... +# Egress service pool level initialization +# Output port Thresholds +--- +device: + 0: + # Egress unicast shared pool + TM_EGR_THD_SERVICE_POOL: + ? + BUFFER_POOL: [0,1] + TM_EGR_SERVICE_POOL_ID: [[0,3]] + : + COLOR_SPECIFIC_LIMITS: 0 + SHARED_LIMIT_CELLS: 0 + SHARED_RESUME_LIMIT_CELLS: 0 + YELLOW_SHARED_LIMIT_CELLS: 0 + YELLOW_SHARED_RESUME_LIMIT_CELLS: 0 + RED_SHARED_LIMIT_CELLS: 0 + RED_SHARED_RESUME_LIMIT_CELLS: 0 + + # Egress multicast CQE pool + TM_THD_MC_EGR_SERVICE_POOL: + ? + BUFFER_POOL: [0,1] + TM_EGR_SERVICE_POOL_ID: [[0,3]] + : + COLOR_SPECIFIC_LIMITS: 0 + SHARED_LIMIT_CELLS: 0 + SHARED_RESUME_LIMIT_CELLS: 0 + YELLOW_SHARED_LIMIT_CELLS: 0 + YELLOW_SHARED_RESUME_LIMIT_CELLS: 0 + RED_SHARED_LIMIT_CELLS: 0 + RED_SHARED_RESUME_LIMIT_CELLS: 0 + + TM_THD_DYNAMIC_MARGIN: + ? + BUFFER_POOL: [0,1] + TM_EGR_SERVICE_POOL_ID: [0,3] + : + MARGIN: [8256,16513,24769,33026,41282,49539,57795,66052,82565,99078] +... +#Per Port Registers +#Input Port Thresholds +--- +device: + 0: + # Set PG is LOSSLESS, PFC enable bit + TM_ING_PORT_PRI_GRP: + ? + PORT_ID: [[0,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_PRI_GRP_ID: [[0,7]] + : + PFC: 0 + LOSSLESS: 0 + ING_MIN_MODE: USE_PRI_GRP_MIN + + TM_ING_PORT: + ? + PORT_ID: [[0,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + : + # Pause enable bit, + PAUSE: 0 + # Ingress priority profile select, maps to priority group + ING_PRI_MAP_ID: 0 + #Priority group profile select, maps to service pool + PRI_GRP_MAP_ID: 0 + + # Ingress port Level to Service Pool limits + TM_ING_THD_PORT_SERVICE_POOL: + ? + PORT_ID: [[0,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_ING_SERVICE_POOL_ID: [[0,3]] + : + MIN_GUARANTEE_CELLS: 0 + SHARED_LIMIT_CELLS: 0 + RESUME_LIMIT_CELLS: 0 + + # Port level PG limits + TM_ING_THD_PORT_PRI_GRP: + ? + PORT_ID: [[0,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_PRI_GRP_ID: [[0,7]] + : + MIN_GUARANTEE_CELLS: 0 + DYNAMIC_SHARED_LIMITS: 0 + SHARED_LIMIT_CELLS_STATIC: 0 + RESUME_OFFSET_CELLS: 0 + RESUME_FLOOR_CELLS: 0 + HEADROOM_LIMIT_AUTO: 0 + HEADROOM_LIMIT_CELLS: 0 + EARLY_PFC_XOFF_OFFSET_CELLS: 0 + EARLY_PFC_XON_OFFSET_CELLS: 0 + EARLY_PFC_FLOOR_CELLS: 0 +... +# Output Port Thresholds -2 +# Per Unicast Queue Thresholds +--- +device: + 0: + TM_EGR_SERVICE_POOL_DYNAMIC: + ? + BUFFER_POOL: [0,1] + TM_EGR_SERVICE_POOL_ID: [0,3] + : + ADAPTIVE_DYNAMIC: ALPHA_1 + + TM_PORT_UC_Q_TO_SERVICE_POOL: + ? + PORT_ID: [[1,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_UC_Q_ID: [[0,7]] + : + USE_QGROUP_MIN: 0 + + TM_THD_UC_Q: + ? + PORT_ID: [[1,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_UC_Q_ID: [[0,7]] + : + MIN_GUARANTEE_CELLS: 0 + SHARED_LIMITS: 1 + DYNAMIC_SHARED_LIMITS: 0 + SHARED_LIMIT_CELLS_STATIC: 0 + + TM_PORT_MC_Q_TO_SERVICE_POOL: + ? + PORT_ID: [[1,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_MC_Q_ID: [[0,3]] + : + USE_QGROUP_MIN: 0 + + TM_THD_MC_Q: + ? + # CPU port, 48 MC queues + PORT_ID: 0 + TM_MC_Q_ID: [[0,47]] + : + MIN_GUARANTEE_CELLS: 0 + SHARED_LIMITS: 1 + DYNAMIC_SHARED_LIMITS: 0 + SHARED_LIMIT_CELLS_STATIC: 0 + ? + # uplink, downlink and loopback ports, 2 MC queues + PORT_ID: [[1,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_MC_Q_ID: [[0,3]] + : + MIN_GUARANTEE_CELLS: 0 + SHARED_LIMITS: 1 + DYNAMIC_SHARED_LIMITS: 0 + SHARED_LIMIT_CELLS_STATIC: 0 + + TM_THD_Q_GRP: + ? + PORT_ID: [[1,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + : + UC_Q_GRP_MIN_GUARANTEE_CELLS: 0 + MC_Q_GRP_MIN_GUARANTEE_CELLS: 0 + + TM_EGR_THD_UC_PORT_SERVICE_POOL: + ? + PORT_ID: [[1,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_EGR_SERVICE_POOL_ID: [0,3] + : + COLOR_SPECIFIC_LIMITS: 0 + SHARED_LIMIT_CELLS: 0 + SHARED_RESUME_LIMIT_CELLS: 0 + YELLOW_SHARED_LIMIT_CELLS: 0 + YELLOW_SHARED_RESUME_LIMIT_CELLS: 0 + RED_SHARED_LIMIT_CELLS: 0 + RED_SHARED_RESUME_LIMIT_CELLS: 0 + + TM_EGR_THD_MC_PORT_SERVICE_POOL: + ? + PORT_ID: [[0,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_EGR_SERVICE_POOL_ID: [0,3] + : + COLOR_SPECIFIC_LIMITS: 0 + RED_SHARED_LIMIT_CELLS: 0 + YELLOW_SHARED_LIMIT_CELLS: 0 + SHARED_LIMIT_CELLS: 0 + RED_SHARED_RESUME_LIMIT_CELLS: 0 + YELLOW_SHARED_RESUME_LIMIT_CELLS: 0 + SHARED_RESUME_LIMIT_CELLS: 0 +... +### THDR Limits : initialization +--- +device: + 0: + TM_THD_REPL_Q: + ? + REPL_Q_NUM: [0,6] + : + SHARED_LIMITS: 0 + DYNAMIC_SHARED_LIMITS: 0 + SHARED_LIMIT_DYNAMIC: ALPHA_1 + RESUME_OFFSET_CELLS: 0 + COLOR_SPECIFIC_LIMITS: 0 + COLOR_SPECIFIC_DYNAMIC_LIMITS: 0 + YELLOW_LIMIT_DYNAMIC: PERCENTAGE_750 + RED_LIMIT_DYNAMIC: PERCENTAGE_625 + SHARED_LIMIT_PKTS: 0 + DYNAMIC_SHARED_LIMIT_PKTS: 0 + SHARED_LIMIT_DYNAMIC_PKTS: ALPHA_1 + RESUME_OFFSET_PKTS: 0 + COLOR_SPECIFIC_LIMIT_PKTS: 0 + COLOR_SPECIFIC_DYNAMIC_LIMIT_PKTS: 0 + YELLOW_LIMIT_DYNAMIC_PKTS: PERCENTAGE_750 + RED_LIMIT_DYNAMIC_PKTS: PERCENTAGE_625 + MIN_GUARANTEE_CELLS: 0 + MIN_GUARANTEE_PKTS: 0 + + TM_THD_REPL_SERVICE_POOL: + SHARED_LIMIT_CELLS: 0 + SHARED_RESUME_LIMIT_CELLS: 0 + COLOR_SPECIFIC_LIMITS: 0 + YELLOW_SHARED_LIMIT_CELLS: 0 + YELLOW_SHARED_RESUME_LIMIT_CELLS: 0 + RED_SHARED_LIMIT_CELLS: 0 + RED_SHARED_RESUME_LIMIT_CELLS: 0 + SHARED_LIMIT_PKTS: 0 + SHARED_RESUME_LIMIT_PKTS: 0 + COLOR_SPECIFIC_LIMITS: 0 + YELLOW_SHARED_LIMIT_PKTS: 0 + YELLOW_SHARED_RESUME_LIMIT_PKTS: 0 + RED_SHARED_LIMIT_PKTS: 0 + RED_SHARED_RESUME_LIMIT_PKTS: 0 +... +### Begin MMU ingress threshold settings + +### Pools +--- +device: + 0: +# Ingress Service Pool Thresholds + TM_ING_THD_SERVICE_POOL: + ? + BUFFER_POOL: [0,1] + TM_ING_SERVICE_POOL_ID: 0 + : + SHARED_LIMIT_CELLS: 269303 + SHARED_RESUME_OFFSET_CELLS: 74 + COLOR_SPECIFIC_LIMITS: 0 + ? + BUFFER_POOL: [0,1] + TM_ING_SERVICE_POOL_ID: 1 + : + SHARED_LIMIT_CELLS: 605 + SHARED_RESUME_OFFSET_CELLS: 74 + COLOR_SPECIFIC_LIMITS: 0 + +# Ingress Headroom Pool Thresholds + TM_ING_THD_HEADROOM_POOL: + ? + BUFFER_POOL: [0,1] + TM_HEADROOM_POOL_ID: 0 + : + LIMIT_CELLS: 39728 +... +--- +device: + 0: +# UC Traffic Priority to PG mapping + TM_ING_UC_ING_PRI_MAP: + ? + # Profile 0 + TM_ING_UC_ING_PRI_MAP_ID: 0 + ING_PRI: [0, 1, 2, 5, 6, [8,15]] + : + TM_PRI_GRP_ID: 0 + ? + TM_ING_UC_ING_PRI_MAP_ID: 0 + ING_PRI: 3 + : + TM_PRI_GRP_ID: 3 + ? + TM_ING_UC_ING_PRI_MAP_ID: 0 + ING_PRI: 4 + : + TM_PRI_GRP_ID: 4 + ? + TM_ING_UC_ING_PRI_MAP_ID: 0 + ING_PRI: 7 + : + TM_PRI_GRP_ID: 7 + ? + # Profile 1 + TM_ING_UC_ING_PRI_MAP_ID: 1 + ING_PRI: [[0,7]] + : + TM_PRI_GRP_ID: 7 + ? + TM_ING_UC_ING_PRI_MAP_ID: 1 + ING_PRI: [[8,15]] + : + TM_PRI_GRP_ID: 0 + +# MC Traffic Priority to PG mapping + TM_ING_NONUC_ING_PRI_MAP: + ? + # Profile 0 + TM_ING_NONUC_ING_PRI_MAP_ID: 0 + ING_PRI: [0, 1, 2, 5, 6, [8,15]] + : + TM_PRI_GRP_ID: 0 + ? + TM_ING_NONUC_ING_PRI_MAP_ID: 0 + ING_PRI: 3 + : + TM_PRI_GRP_ID: 3 + ? + TM_ING_NONUC_ING_PRI_MAP_ID: 0 + ING_PRI: 4 + : + TM_PRI_GRP_ID: 4 + ? + TM_ING_NONUC_ING_PRI_MAP_ID: 0 + ING_PRI: 7 + : + TM_PRI_GRP_ID: 7 + ? + # Profile 1 + TM_ING_NONUC_ING_PRI_MAP_ID: 1 + ING_PRI: [[0,7]] + : + TM_PRI_GRP_ID: 7 + ? + TM_ING_NONUC_ING_PRI_MAP_ID: 1 + ING_PRI: [[8,15]] + : + TM_PRI_GRP_ID: 0 + +# PG to Headroom Pool Mapping + TM_PRI_GRP_POOL_MAP: + ? + TM_PRI_GRP_POOL_MAP_ID: 0 + TM_PRI_GRP_ID: [[0,6]] + : + TM_HEADROOM_POOL_ID: 0 + ? + TM_PRI_GRP_POOL_MAP_ID: 0 + TM_PRI_GRP_ID: 7 + : + TM_HEADROOM_POOL_ID: 1 + +# PG to Service Pool Mapping + TM_PRI_GRP_POOL_MAP: + ? + TM_PRI_GRP_POOL_MAP_ID: 0 + TM_PRI_GRP_ID: [[0,6]] + : + TM_ING_SERVICE_POOL_ID: 0 + ? + TM_PRI_GRP_POOL_MAP_ID: 0 + TM_PRI_GRP_ID: 7 + : + TM_ING_SERVICE_POOL_ID: 1 + +# Ingress PG to PFC priority mapping +# TM_PFC_PRI_TO_PRI_GRP_MAP is mapped to MMU_THDI_PFCPRI_PG_PROFILE in physical table. There are 8 profiles to configure the PFC to priority group mappings. For exmple, you could map multiple PG to a PFC. This is needed to generate PFC when a PG is hitting the limits. + TM_PFC_PRI_TO_PRI_GRP_MAP: + ? + TM_PFC_PRI_TO_PRI_GRP_MAP_ID: 0 + PFC_PRI: 3 + : + TM_PRI_GRP_ID: 3 + ? + TM_PFC_PRI_TO_PRI_GRP_MAP_ID: 0 + PFC_PRI: 4 + : + TM_PRI_GRP_ID: 4 + +# Per input port PG and flow control configurations +# TM_ING_PORT_PRI_GRP is mapped to MMU_THDI_ING_PORT_CONFIG in physical table + TM_ING_PORT_PRI_GRP: + ? + PORT_ID: [[1,4], [17,20], [34,37], [51,54], [476,479], [493,496], [510,513], [527,530]] + TM_PRI_GRP_ID: [3,4] + : + PFC: 1 + LOSSLESS: 1 + ? + PORT_ID: [[68,71], [85,88], [102,105], [119,122], [136,139], [153,156], [170,173], [187,190], [204,207], [221,224], [238,241], [255,258], [272,275], [289,292], [306,309], [323,326], [340,343], [357,360], [374,377], [391,394], [408,411], [425,428], [442,445], [459,462]] + TM_PRI_GRP_ID: [3,4] + : + PFC: 1 + LOSSLESS: 1 + +# ING_PRI_MAP_ID is the ingress priority PG profile select, which maps to the Priority Group +# PRI_GRP_MAP_ID is the Priority Group profile select, which maps to service pool + TM_ING_PORT: + ? + PORT_ID: [0] + : + ING_PRI_MAP_ID: 1 + PRI_GRP_MAP_ID: 0 + ? + PORT_ID: [[1,4], [17,20], [34,37], [51,54], [476,479], [493,496], [510,513], [527,530]] + : + ING_PRI_MAP_ID: 0 + PRI_GRP_MAP_ID: 0 + ? + PORT_ID: [[68,71], [85,88], [102,105], [119,122], [136,139], [153,156], [170,173], [187,190], [204,207], [221,224], [238,241], [255,258], [272,275], [289,292], [306,309], [323,326], [340,343], [357,360], [374,377], [391,394], [408,411], [425,428], [442,445], [459,462]] + : + ING_PRI_MAP_ID: 0 + PRI_GRP_MAP_ID: 0 + ? + PORT_ID: [118, 254, 288, 424] + : + ING_PRI_MAP_ID: 1 + PRI_GRP_MAP_ID: 0 + ? + PORT_ID: [33, 67, 101, 135, 169, 203, 237, 271, 305, 339, 373, 407, 441, 475, 509, 543] + : + ING_PRI_MAP_ID: 1 + PRI_GRP_MAP_ID: 0 +... +###################################### +--- +device: + 0: +# Per input port Service Pool Thresholds + TM_ING_THD_PORT_SERVICE_POOL: + ? + PORT_ID: [[0,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_ING_SERVICE_POOL_ID: [0, 1] + : + MIN_GUARANTEE_CELLS: 0 + SHARED_LIMIT_CELLS: 325520 + RESUME_LIMIT_CELLS: 325520 + +# Per input Port PG Thresholds + TM_ING_THD_PORT_PRI_GRP: + ? + PORT_ID: [[0,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_PRI_GRP_ID: [0, 1, 2, 5, 6, 7] + : + MIN_GUARANTEE_CELLS: 0 + DYNAMIC_SHARED_LIMITS: 0 + SHARED_LIMIT_CELLS_STATIC: 325520 + HEADROOM_LIMIT_CELLS: 0 + RESUME_OFFSET_CELLS: 0 + RESUME_FLOOR_CELLS: 0 + HEADROOM_LIMIT_AUTO: 0 + ? + PORT_ID: [[1,4], [17,20], [34,37], [51,54], [476,479], [493,496], [510,513], [527,530]] + TM_PRI_GRP_ID: [3,4] + : + MIN_GUARANTEE_CELLS: 74 + DYNAMIC_SHARED_LIMITS: 1 + SHARED_LIMIT_DYNAMIC: ALPHA_1 + RESUME_OFFSET_CELLS: 14 + RESUME_FLOOR_CELLS: 0 + HEADROOM_LIMIT_AUTO: 0 + HEADROOM_LIMIT_CELLS: 1755 + ? + PORT_ID: [[68,71], [85,88], [102,105], [119,122], [136,139], [153,156], [170,173], [187,190], [204,207], [221,224], [238,241], [255,258], [272,275], [289,292], [306,309], [323,326], [340,343], [357,360], [374,377], [391,394], [408,411], [425,428], [442,445], [459,462]] + TM_PRI_GRP_ID: [3,4] + : + MIN_GUARANTEE_CELLS: 74 + DYNAMIC_SHARED_LIMITS: 1 + SHARED_LIMIT_DYNAMIC: ALPHA_1 + RESUME_OFFSET_CELLS: 14 + RESUME_FLOOR_CELLS: 0 + HEADROOM_LIMIT_AUTO: 0 + HEADROOM_LIMIT_CELLS: 1548 + ? + PORT_ID: [118, 254, 288, 424] + TM_PRI_GRP_ID: [3,4] + : + MIN_GUARANTEE_CELLS: 0 + DYNAMIC_SHARED_LIMITS: 1 + SHARED_LIMIT_DYNAMIC: ALPHA_1 + RESUME_OFFSET_CELLS: 0 + RESUME_FLOOR_CELLS: 0 + HEADROOM_LIMIT_AUTO: 0 + HEADROOM_LIMIT_CELLS: 0 + ? + PORT_ID: [33, 67, 101, 135, 169, 203, 237, 271, 305, 339, 373, 407, 441, 475, 509, 543] + TM_PRI_GRP_ID: [3,4] + : + MIN_GUARANTEE_CELLS: 0 + DYNAMIC_SHARED_LIMITS: 1 + SHARED_LIMIT_DYNAMIC: ALPHA_1 + RESUME_OFFSET_CELLS: 0 + RESUME_FLOOR_CELLS: 0 + HEADROOM_LIMIT_AUTO: 0 + ? + PORT_ID: [0] + TM_PRI_GRP_ID: [3,4] + : + MIN_GUARANTEE_CELLS: 0 + DYNAMIC_SHARED_LIMITS: 1 + SHARED_LIMIT_DYNAMIC: ALPHA_1_4 + RESUME_OFFSET_CELLS: 0 + RESUME_FLOOR_CELLS: 0 + HEADROOM_LIMIT_AUTO: 0 +... +### Egress Service Pools +--- +device: + 0: +# Setting Q group limit to 0 + TM_THD_Q_GRP: + ? + PORT_ID: [[1,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + : + UC_Q_GRP_MIN_GUARANTEE_CELLS: 0 + MC_Q_GRP_MIN_GUARANTEE_CELLS: 0 + +# Unicast Egress Service Pool Limits + TM_EGR_THD_SERVICE_POOL: + ? + BUFFER_POOL: [0,1] + TM_EGR_SERVICE_POOL_ID: 0 + : + SHARED_LIMIT_CELLS: 269303 + SHARED_RESUME_LIMIT_CELLS: 33652 + COLOR_SPECIFIC_LIMITS: 0 + YELLOW_SHARED_LIMIT_CELLS: 25248 + YELLOW_SHARED_RESUME_LIMIT_CELLS: 25238 + RED_SHARED_LIMIT_CELLS: 21040 + RED_SHARED_RESUME_LIMIT_CELLS: 21030 + ? + BUFFER_POOL: [0,1] + TM_EGR_SERVICE_POOL_ID: 1 + : + SHARED_LIMIT_CELLS: 605 + SHARED_RESUME_LIMIT_CELLS: 73 + COLOR_SPECIFIC_LIMITS: 0 + YELLOW_SHARED_LIMIT_CELLS: 57 + YELLOW_SHARED_RESUME_LIMIT_CELLS: 55 + RED_SHARED_LIMIT_CELLS: 48 + RED_SHARED_RESUME_LIMIT_CELLS: 46 +... +--- +device: + 0: +# Multicast Egress Service Pool Limits, CQEs + TM_THD_MC_EGR_SERVICE_POOL: + ? + BUFFER_POOL: [0,1] + TM_EGR_SERVICE_POOL_ID: 0 + : + SHARED_LIMIT_CELLS: 19818 + ? + BUFFER_POOL: [0,1] + TM_EGR_SERVICE_POOL_ID: 1 + : + SHARED_LIMIT_CELLS: 605 +... +--- +device: + 0: +# Multicast Egress Service Pool Limits, CQEs + TM_THD_MC_EGR_SERVICE_POOL: + ? + BUFFER_POOL: [0,1] + TM_EGR_SERVICE_POOL_ID: 0 + : + COLOR_SPECIFIC_LIMITS: 0 + YELLOW_SHARED_LIMIT_CELLS: 1858 + RED_SHARED_LIMIT_CELLS: 1549 + SHARED_RESUME_LIMIT_CELLS: 2467 + YELLOW_SHARED_RESUME_LIMIT_CELLS: 1848 + RED_SHARED_RESUME_LIMIT_CELLS: 1539 + ? + BUFFER_POOL: [0,1] + TM_EGR_SERVICE_POOL_ID: 1 + : + COLOR_SPECIFIC_LIMITS: 0 + YELLOW_SHARED_LIMIT_CELLS: 57 + RED_SHARED_LIMIT_CELLS: 48 + SHARED_RESUME_LIMIT_CELLS: 73 + YELLOW_SHARED_RESUME_LIMIT_CELLS: 55 + RED_SHARED_RESUME_LIMIT_CELLS: 46 +... +... +### Adaptive Alpha +--- +device: + 0: + TM_EGR_SERVICE_POOL_DYNAMIC: + ? + BUFFER_POOL: [0,1] + TM_EGR_SERVICE_POOL_ID: [0] + : + ADAPTIVE_DYNAMIC: ALPHA_1 + + TM_THD_DYNAMIC_MARGIN: + ? + BUFFER_POOL: [0,1] + TM_EGR_SERVICE_POOL_ID: [0] + : + MARGIN: [16513, 33026, 49539, 66052, 82565, 99078, 115591, 132104, 148617, 165130] +... +--- +device: + 0: + TM_PORT_UC_Q_TO_SERVICE_POOL: + ? + PORT_ID: [[1,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_UC_Q_ID: [0,1,2,5,6] + : + USE_QGROUP_MIN: 0 + TM_EGR_SERVICE_POOL_ID: 0 + ? + PORT_ID: [[1,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_UC_Q_ID: [3,4] + : + USE_QGROUP_MIN: 0 + TM_EGR_SERVICE_POOL_ID: 0 + ? + PORT_ID: [[1,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_UC_Q_ID: 7 + : + USE_QGROUP_MIN: 0 + TM_EGR_SERVICE_POOL_ID: 1 + + TM_PORT_MC_Q_TO_SERVICE_POOL: + ? + PORT_ID: [0] + TM_MC_Q_ID: [[0,47]] + : + USE_QGROUP_MIN: 0 + TM_EGR_SERVICE_POOL_ID: 1 + ? + PORT_ID: [[1,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_MC_Q_ID: [[0,3]] + : + USE_QGROUP_MIN: 0 + TM_EGR_SERVICE_POOL_ID: 0 +... +### Queue Thresholds +###################################### +--- +device: + 0: + TM_THD_UC_Q: + ? + PORT_ID: [[1,4], [17,20], [34,37], [51,54], [476,479], [493,496], [510,513], [527,530]] + TM_UC_Q_ID: [0, 1, 2, 5, 6, 7] + : + SHARED_LIMITS: 1 + DYNAMIC_SHARED_LIMITS: 1 + SHARED_LIMIT_CELLS_STATIC: 0 + SHARED_LIMIT_DYNAMIC: ALPHA_1 + DYNAMIC_GROUP: MID_PRI_GROUP + RESUME_OFFSET_CELLS: 2 + COLOR_SPECIFIC_LIMITS: 0 + COLOR_SPECIFIC_DYNAMIC_LIMITS: 0 + YELLOW_LIMIT_CELLS_STATIC: 0 + YELLOW_LIMIT_DYNAMIC: PERCENTAGE_750 + RED_LIMIT_CELLS_STATIC: 0 + RED_LIMIT_DYNAMIC: PERCENTAGE_625 + ? + PORT_ID: [[1,4], [17,20], [34,37], [51,54], [476,479], [493,496], [510,513], [527,530]] + TM_UC_Q_ID: [0, 1, 2, 5, 6, 7] + : + MIN_GUARANTEE_CELLS: 7 + ? + PORT_ID: [[1,4], [17,20], [34,37], [51,54], [476,479], [493,496], [510,513], [527,530]] + TM_UC_Q_ID: [3,4] + : + MIN_GUARANTEE_CELLS: 0 + SHARED_LIMITS: 0 + DYNAMIC_SHARED_LIMITS: 0 + SHARED_LIMIT_CELLS_STATIC: 325520 + DYNAMIC_GROUP: MID_PRI_GROUP + RESUME_OFFSET_CELLS: 2 + COLOR_SPECIFIC_LIMITS: 0 + COLOR_SPECIFIC_DYNAMIC_LIMITS: 0 + YELLOW_LIMIT_CELLS_STATIC: 0 + RED_LIMIT_CELLS_STATIC: 0 + ? + PORT_ID: [[68,71], [85,88], [102,105], [119,122], [136,139], [153,156], [170,173], [187,190], [204,207], [221,224], [238,241], [255,258], [272,275], [289,292], [306,309], [323,326], [340,343], [357,360], [374,377], [391,394], [408,411], [425,428], [442,445], [459,462]] + TM_UC_Q_ID: [0, 1, 2, 5, 6, 7] + : + SHARED_LIMITS: 1 + DYNAMIC_SHARED_LIMITS: 1 + SHARED_LIMIT_CELLS_STATIC: 0 + SHARED_LIMIT_DYNAMIC: ALPHA_1 + DYNAMIC_GROUP: MID_PRI_GROUP + RESUME_OFFSET_CELLS: 2 + COLOR_SPECIFIC_LIMITS: 0 + COLOR_SPECIFIC_DYNAMIC_LIMITS: 0 + YELLOW_LIMIT_CELLS_STATIC: 0 + YELLOW_LIMIT_DYNAMIC: PERCENTAGE_750 + RED_LIMIT_CELLS_STATIC: 0 + RED_LIMIT_DYNAMIC: PERCENTAGE_625 + ? + PORT_ID: [[68,71], [85,88], [102,105], [119,122], [136,139], [153,156], [170,173], [187,190], [204,207], [221,224], [238,241], [255,258], [272,275], [289,292], [306,309], [323,326], [340,343], [357,360], [374,377], [391,394], [408,411], [425,428], [442,445], [459,462]] + TM_UC_Q_ID: [0, 1, 2, 5, 6, 7] + : + MIN_GUARANTEE_CELLS: 7 + ? + PORT_ID: [[68,71], [85,88], [102,105], [119,122], [136,139], [153,156], [170,173], [187,190], [204,207], [221,224], [238,241], [255,258], [272,275], [289,292], [306,309], [323,326], [340,343], [357,360], [374,377], [391,394], [408,411], [425,428], [442,445], [459,462]] + TM_UC_Q_ID: [3,4] + : + MIN_GUARANTEE_CELLS: 0 + SHARED_LIMITS: 0 + DYNAMIC_SHARED_LIMITS: 0 + SHARED_LIMIT_CELLS_STATIC: 325520 + DYNAMIC_GROUP: MID_PRI_GROUP + RESUME_OFFSET_CELLS: 2 + COLOR_SPECIFIC_LIMITS: 0 + COLOR_SPECIFIC_DYNAMIC_LIMITS: 0 + YELLOW_LIMIT_CELLS_STATIC: 0 + RED_LIMIT_CELLS_STATIC: 0 + + TM_THD_MC_Q: + ? + PORT_ID: [0] + TM_MC_Q_ID: [[0,7]] + : + MIN_GUARANTEE_CELLS: 7 + DYNAMIC_SHARED_LIMITS: 1 + SHARED_LIMIT_DYNAMIC: ALPHA_1_4 + COLOR_SPECIFIC_LIMITS: 0 + COLOR_SPECIFIC_DYNAMIC_LIMITS: 0 + YELLOW_LIMIT_DYNAMIC: PERCENTAGE_750 + RED_LIMIT_DYNAMIC: PERCENTAGE_625 + RESUME_OFFSET_CELLS: 2 + ? + PORT_ID: [[1,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_MC_Q_ID: [0,3] + SHARED_LIMIT_DYNAMIC: ALPHA_2 + : + SHARED_LIMITS: 1 + DYNAMIC_SHARED_LIMITS: 1 + SHARED_LIMIT_DYNAMIC: ALPHA_1 + COLOR_SPECIFIC_LIMITS: 0 + COLOR_SPECIFIC_DYNAMIC_LIMITS: 0 + YELLOW_LIMIT_DYNAMIC: PERCENTAGE_750 + RED_LIMIT_DYNAMIC: PERCENTAGE_625 + RESUME_OFFSET_CELLS: 2 + +#Egress Port Thresholds. + TM_EGR_THD_UC_PORT_SERVICE_POOL: + ? + PORT_ID: [[1,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_EGR_SERVICE_POOL_ID: 0 + : + COLOR_SPECIFIC_LIMITS: 0 + RED_SHARED_LIMIT_CELLS: 21039 + YELLOW_SHARED_LIMIT_CELLS: 25247 + SHARED_LIMIT_CELLS: 269303 + RED_SHARED_RESUME_LIMIT_CELLS: 21037 + YELLOW_SHARED_RESUME_LIMIT_CELLS: 25245 + SHARED_RESUME_LIMIT_CELLS: 33661 + ? + PORT_ID: [[1,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_EGR_SERVICE_POOL_ID: 1 + : + COLOR_SPECIFIC_LIMITS: 0 + RED_SHARED_LIMIT_CELLS: 47 + YELLOW_SHARED_LIMIT_CELLS: 56 + SHARED_LIMIT_CELLS: 605 + RED_SHARED_RESUME_LIMIT_CELLS: 45 + YELLOW_SHARED_RESUME_LIMIT_CELLS: 54 + SHARED_RESUME_LIMIT_CELLS: 73 + + TM_EGR_THD_MC_PORT_SERVICE_POOL: + ? + PORT_ID: [[0,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_EGR_SERVICE_POOL_ID: 0 + : + COLOR_SPECIFIC_LIMITS: 0 + RED_SHARED_LIMIT_CELLS: 1548 + YELLOW_SHARED_LIMIT_CELLS: 1857 + SHARED_LIMIT_CELLS: 19818 + RED_SHARED_RESUME_LIMIT_CELLS: 1546 + YELLOW_SHARED_RESUME_LIMIT_CELLS: 1855 + SHARED_RESUME_LIMIT_CELLS: 2475 + ? + PORT_ID: [[0,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + TM_EGR_SERVICE_POOL_ID: 1 + : + COLOR_SPECIFIC_LIMITS: 0 + RED_SHARED_LIMIT_CELLS: 47 + YELLOW_SHARED_LIMIT_CELLS: 56 + SHARED_LIMIT_CELLS: 605 + RED_SHARED_RESUME_LIMIT_CELLS: 45 + YELLOW_SHARED_RESUME_LIMIT_CELLS: 54 + SHARED_RESUME_LIMIT_CELLS: 73 +... +### PFC mapping +--- +device: + 0: + PC_MAC_CONTROL: + ? + PORT_ID: [[1,4], [17,20], [33,37], [51,54], [67,71], [85,88], [101,105], [118,122], [135,139], [153,156], [169,173], [187,190], [203,207], [221,224], [237,241], [254,258], [271,275], [288,292], [305,309], [323,326], [339,343], [357,360], [373,377], [391,394], [407,411], [424,428], [441,445], [459,462], [475,479], [493,496], [509,513], [527,530], 543] + : + PAUSE_TX: 0 + PAUSE_RX: 0 + TM_PFC_EGR: + ? + PORT_ID: [[1,4], [17,20], [34,37], [51,54], [476,479], [493,496], [510,513], [527,530]] + : + TM_PFC_PRI_PROFILE_ID: 0 + + TM_PFC_EGR: + ? + PORT_ID: [[68,71], [85,88], [102,105], [119,122], [136,139], [153,156], [170,173], [187,190], [204,207], [221,224], [238,241], [255,258], [272,275], [289,292], [306,309], [323,326], [340,343], [357,360], [374,377], [391,394], [408,411], [425,428], [442,445], [459,462]] + : + TM_PFC_PRI_PROFILE_ID: 0 +... +--- +device: + 0: +# TM_PFC_PRI_PROFILE is mapped to MMU_INTFI_PFCRPI_PROFILE in physical table. There are 8 profiles to configure the PFC value to COS/priorities mapping. For example, you could map multiple coses to a PFC. This mapping is needed when receiving PFC frames and stopping queues(coses) according to the PFC frame received. + TM_PFC_PRI_PROFILE: + ? + TM_PFC_PRI_PROFILE_ID: 0 + PFC_PRI: 3 + : + PFC: 1 + COS_LIST: [0, 0, 0, 1, 0, 0, 0, 0, 0, 0] + ? + TM_PFC_PRI_PROFILE_ID: 0 + PFC_PRI: 4 + : + PFC: 1 + COS_LIST: [0, 0, 0, 0, 1, 0, 0, 0, 0, 0] + +# enable the MAC's PFC controls. + PC_PFC: + ? + PORT_ID: [[1,4], [17,20], [34,37], [51,54], [476,479], [493,496], [510,513], [527,530]] + : + ENABLE_RX: 1 + ENABLE_TX: 1 + + PC_PFC: + ? + PORT_ID: [[68,71], [85,88], [102,105], [119,122], [136,139], [153,156], [170,173], [187,190], [204,207], [221,224], [238,241], [255,258], [272,275], [289,292], [306,309], [323,326], [340,343], [357,360], [374,377], [391,394], [408,411], [425,428], [442,445], [459,462]] + : + ENABLE_RX: 1 + ENABLE_TX: 1 +... +### Mirror-on-drop +--- +device: + 0: + TM_MIRROR_ON_DROP_CONTROL: + RESERVED_LIMIT_CELLS: 0 + + TM_MIRROR_ON_DROP_PROFILE: + ? + TM_MIRROR_ON_DROP_PROFILE_ID: 0 + : + PERCENTAGE_0_25: 65535 + PERCENTAGE_25_50: 65535 + PERCENTAGE_50_75: 65535 + PERCENTAGE_75_100: 65535 + INGRESS_LIMIT: 0 + SHARED_LIMIT: 0 + + TM_MIRROR_ON_DROP_DESTINATION: + ? + TM_MIRROR_ON_DROP_DESTINATION_ID: 0 + : + TM_MC_Q_ID: 11 + PORT_ID: 1 +... +### THDR Limits +--- +device: + 0: + TM_THD_REPL_Q: + ? + REPL_Q_NUM: [0,6] + : + SHARED_LIMITS: 1 + DYNAMIC_SHARED_LIMITS: 1 + SHARED_LIMIT_DYNAMIC: ALPHA_1 + RESUME_OFFSET_CELLS: 14 + COLOR_SPECIFIC_LIMITS: 0 + COLOR_SPECIFIC_DYNAMIC_LIMITS: 0 + YELLOW_LIMIT_DYNAMIC: PERCENTAGE_750 + RED_LIMIT_DYNAMIC: PERCENTAGE_625 + SHARED_LIMIT_PKTS: 1 + DYNAMIC_SHARED_LIMIT_PKTS: 1 + SHARED_LIMIT_DYNAMIC_PKTS: ALPHA_1 + RESUME_OFFSET_PKTS: 14 + COLOR_SPECIFIC_LIMIT_PKTS: 0 + COLOR_SPECIFIC_DYNAMIC_LIMIT_PKTS: 0 + YELLOW_LIMIT_DYNAMIC_PKTS: PERCENTAGE_750 + RED_LIMIT_DYNAMIC_PKTS: PERCENTAGE_625 + + TM_THD_REPL_Q: + ? + REPL_Q_NUM: [0,3] + : + MIN_GUARANTEE_CELLS: 0 + MIN_GUARANTEE_PKTS: 0 + ? + REPL_Q_NUM: [4,6] + : + MIN_GUARANTEE_CELLS: 37 + MIN_GUARANTEE_PKTS: 7 + + TM_THD_REPL_SERVICE_POOL: + SHARED_LIMIT_CELLS: 11153 + SHARED_RESUME_LIMIT_CELLS: 11139 + SHARED_LIMIT_PKTS: 2979 + SHARED_RESUME_LIMIT_PKTS: 2965 + COLOR_SPECIFIC_LIMITS: 0 + YELLOW_SHARED_LIMIT_CELLS: 8364 + RED_SHARED_LIMIT_CELLS: 6970 + YELLOW_SHARED_LIMIT_PKTS: 2234 + RED_SHARED_LIMIT_PKTS: 1861 + YELLOW_SHARED_RESUME_LIMIT_CELLS: 8350 + RED_SHARED_RESUME_LIMIT_CELLS: 6956 + YELLOW_SHARED_RESUME_LIMIT_PKTS: 2220 + RED_SHARED_RESUME_LIMIT_PKTS: 1847 +... +### OBM +--- +device: + 0: + TM_OBM_PORT_PKT_PARSE: + ? + PORT_ID: [[1,4], [17,20], [34,37], [51,54], [476,479], [493,496], [510,513], [527,530]] + : + OUTER_TPID: 1 + HEADER_TYPE: OBM_HEADER_TYPE_ETHERNET + DEFAULT_PKT_PRI: 0 # mapp to obm_lossy_low + + TM_OBM_PORT_PKT_PARSE: + ? + PORT_ID: [[68,71], [85,88], [102,105], [119,122], [136,139], [153,156], [170,173], [187,190], [204,207], [221,224], [238,241], [255,258], [272,275], [289,292], [306,309], [323,326], [340,343], [357,360], [374,377], [391,394], [408,411], [425,428], [442,445], [459,462]] + : + OUTER_TPID: 1 + HEADER_TYPE: OBM_HEADER_TYPE_ETHERNET + DEFAULT_PKT_PRI: 0 # mapp to obm_lossy_low + + TM_OBM_PORT_PKT_PRI_TC_MAP: + ? + PORT_ID: [[1,4], [17,20], [34,37], [51,54], [476,479], [493,496], [510,513], [527,530]] + PKT_PRI_TYPE: PKT_PRI_TYPE_VLAN + PKT_PRI: 1 + : + TRAFFIC_CLASS: OBM_TC_LOSSLESS0 + ? + PORT_ID: [[68,71], [85,88], [102,105], [119,122], [136,139], [153,156], [170,173], [187,190], [204,207], [221,224], [238,241], [255,258], [272,275], [289,292], [306,309], [323,326], [340,343], [357,360], [374,377], [391,394], [408,411], [425,428], [442,445], [459,462]] + PKT_PRI_TYPE: PKT_PRI_TYPE_VLAN + PKT_PRI: 1 + : + TRAFFIC_CLASS: OBM_TC_LOSSLESS0 + + TM_OBM_PC_PM_PKT_PARSE: + ? + PC_PM_ID: [1,65] + : + OUTER_TPID: 0x8100 + + TM_OBM_THD_PORT: + ? + PORT_ID: [[1,4], [17,20], [34,37], [51,54], [476,479], [493,496], [510,513], [527,530]] + : + THD_AUTO: 0 + MAX_BYTES: 244736 + LOSSY_LOW_MAX_BYTES: 46720 + LOSSY_MAX_BYTES: 53504 + LOSSLESS0_MAX_BYTES: 502528 + LOSSLESS1_MAX_BYTES: 502528 + ? + PORT_ID: [[68,71], [85,88], [102,105], [119,122], [136,139], [153,156], [170,173], [187,190], [204,207], [221,224], [238,241], [255,258], [272,275], [289,292], [306,309], [323,326], [340,343], [357,360], [374,377], [391,394], [408,411], [425,428], [442,445], [459,462]] + : + THD_AUTO: 0 + MAX_BYTES: 244736 + LOSSY_LOW_MAX_BYTES: 46720 + LOSSY_MAX_BYTES: 53504 + LOSSLESS0_MAX_BYTES: 502528 + LOSSLESS1_MAX_BYTES: 502528 + + TM_OBM_THD_PORT_FLOW_CTRL: + ? + PORT_ID: [[1,4], [17,20], [34,37], [51,54], [476,479], [493,496], [510,513], [527,530]] + : + THD_AUTO: 0 + XOFF_BYTES: 162432 + XON_BYTES: 161920 + LOSSLESS0_XOFF_BYTES: 5184 + LOSSLESS0_XON_BYTES: 4672 + LOSSLESS1_XOFF_BYTES: 5184 + LOSSLESS1_XON_BYTES: 4672 + ? + PORT_ID: [[68,71], [85,88], [102,105], [119,122], [136,139], [153,156], [170,173], [187,190], [204,207], [221,224], [238,241], [255,258], [272,275], [289,292], [306,309], [323,326], [340,343], [357,360], [374,377], [391,394], [408,411], [425,428], [442,445], [459,462]] + : + THD_AUTO: 0 + XOFF_BYTES: 162432 + XON_BYTES: 161920 + LOSSLESS0_XOFF_BYTES: 5184 + LOSSLESS0_XON_BYTES: 4672 + LOSSLESS1_XOFF_BYTES: 5184 + LOSSLESS1_XON_BYTES: 4672 + + TM_OBM_PORT_FLOW_CTRL: + ? + PORT_ID: [[1,4], [17,20], [34,37], [51,54], [476,479], [493,496], [510,513], [527,530]] + : + FLOW_CTRL: 1 + FLOW_CTRL_TYPE: PFC + LOSSLESS0_FLOW_CTRL: 1 + LOSSLESS1_FLOW_CTRL: 0 + COS_BMAP_LOSSLESS0: [0,0,0,1,1,0,0,0] + COS_BMAP_LOSSLESS1: 0 + + ? + PORT_ID: [[68,71], [85,88], [102,105], [119,122], [136,139], [153,156], [170,173], [187,190], [204,207], [221,224], [238,241], [255,258], [272,275], [289,292], [306,309], [323,326], [340,343], [357,360], [374,377], [391,394], [408,411], [425,428], [442,445], [459,462]] + : + FLOW_CTRL: 1 + FLOW_CTRL_TYPE: PFC + LOSSLESS0_FLOW_CTRL: 1 + LOSSLESS1_FLOW_CTRL: 0 + COS_BMAP_LOSSLESS0: [0,0,0,1,1,0,0,0] + COS_BMAP_LOSSLESS1: 0 + + TM_OBM_PORT_PKT_PRI_TC_MAP: + ? + PORT_ID: [[1,4], [17,20], [34,37], [51,54], [476,479], [493,496], [510,513], [527,530]] + PKT_PRI_TYPE: PKT_PRI_TYPE_VLAN + PKT_PRI: [0,1,2,5,6,7] + : + TRAFFIC_CLASS: OBM_TC_LOSSY_LOW + ? + PORT_ID: [[1,4], [17,20], [34,37], [51,54], [476,479], [493,496], [510,513], [527,530]] + PKT_PRI_TYPE: PKT_PRI_TYPE_VLAN + PKT_PRI: [3,4] + : + TRAFFIC_CLASS: OBM_TC_LOSSLESS0 + ? + PORT_ID: [[68,71], [85,88], [102,105], [119,122], [136,139], [153,156], [170,173], [187,190], [204,207], [221,224], [238,241], [255,258], [272,275], [289,292], [306,309], [323,326], [340,343], [357,360], [374,377], [391,394], [408,411], [425,428], [442,445], [459,462]] + PKT_PRI_TYPE: PKT_PRI_TYPE_VLAN + PKT_PRI: [0,1,2,5,6,7] + : + TRAFFIC_CLASS: OBM_TC_LOSSY_LOW + ? + PORT_ID: [[68,71], [85,88], [102,105], [119,122], [136,139], [153,156], [170,173], [187,190], [204,207], [221,224], [238,241], [255,258], [272,275], [289,292], [306,309], [323,326], [340,343], [357,360], [374,377], [391,394], [408,411], [425,428], [442,445], [459,462]] + PKT_PRI_TYPE: PKT_PRI_TYPE_VLAN + PKT_PRI: [3,4] + : + TRAFFIC_CLASS: OBM_TC_LOSSLESS0 + ? + PORT_ID: [118, 254, 288, 424] + PKT_PRI_TYPE: PKT_PRI_TYPE_VLAN + PKT_PRI: [0,1,2,5,6,7] + : + TRAFFIC_CLASS: OBM_TC_LOSSY_LOW + ? + PORT_ID: [118, 254, 288, 424] + PKT_PRI_TYPE: PKT_PRI_TYPE_VLAN + PKT_PRI: [3,4] + : + TRAFFIC_CLASS: OBM_TC_LOSSLESS0 +... From f3d9c03f51942256b2132e27e2b0c0b259854c23 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Fri, 13 Jun 2025 02:01:18 +0800 Subject: [PATCH 18/20] [action] [PR:22673] Add qos values for Arista-7060X6-16PE-384C-O128S2 TH5-512 (#1224) #### Why I did it Add qos values for Arista-7060X6-16PE-384C-O128S2 TH5-512 ##### Work item tracking - Microsoft ADO **(number only)**: #### How I did it #### How to verify it #### Which release branch to backport (provide reason below if selected) - [ ] 201811 - [ ] 201911 - [ ] 202006 - [ ] 202012 - [ ] 202106 - [ ] 202111 - [ ] 202205 - [ ] 202211 - [ ] 202305 #### Tested branch (Please provide the tested image version) - [ ] - [ ] #### Description for the changelog #### Link to config_db schema for YANG module changes #### A picture of a cute animal (not mandatory but encouraged) From 70de85721eca532b88845df334a7ae9e6747e902 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Fri, 13 Jun 2025 02:03:08 +0800 Subject: [PATCH 19/20] [submodule][202412] Update submodule sonic-sairedis to the latest HEAD automatically (#1214) #### Why I did it src/sonic-sairedis ``` * f21e12c - (HEAD -> 202412, origin/HEAD, origin/202412) [trim]: Add Packet Trimming Port/Queue stats to VS lib (#60) (8 hours ago) [Nazarii Hnydyn] * 9d39644 - Merge pull request #61 from mssonicbld/cherry/msft-202412/1548 (4 days ago) [Ze Gan] * 613654b - [syncd] Move log set function after api initialize (4 days ago) [Sonic Build Admin] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-sairedis | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-sairedis b/src/sonic-sairedis index e18530c85f..f21e12cecc 160000 --- a/src/sonic-sairedis +++ b/src/sonic-sairedis @@ -1 +1 @@ -Subproject commit e18530c85f9fa0596e51695fea2cf7397f078aca +Subproject commit f21e12cecc938f58adb01e59d1172f89a89e55dd From 9fa6edd302bb3bdeeb41ef80b9ff22ca8d65a55b Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Fri, 13 Jun 2025 02:06:33 +0800 Subject: [PATCH 20/20] [action] [PR:22588] skip frr_bmp container from monit (#1212) #### Why I did it frr_bmp is only feature switch used for bgpd to start as "/usr/lib/frr/bgpd -A 127.0.0.1 -M bmp", so that bmp container later rollout could work, thus is should be skipped from container check. ##### Work item tracking - Microsoft ADO **(number only)**:30807821 #### How I did it skip container check from monit. #### How to verify it before fix ![image](https://github.com/user-attachments/assets/b9e2c58f-3f57-47fd-94ae-8afb4b129f14) after fix, the error log disappears. #### Which release branch to backport (provide reason below if selected) - [ ] 201811 - [ ] 201911 - [ ] 202006 - [ ] 202012 - [ ] 202106 - [ ] 202111 - [ ] 202205 - [ ] 202211 - [ ] 202305 #### Tested branch (Please provide the tested image version) - [ ] - [ ] #### Description for the changelog #### Link to config_db schema for YANG module changes #### A picture of a cute animal (not mandatory but encouraged)