diff --git a/device/mellanox/x86_64-nvidia_sn5600-r0/Mellanox-SN5600-V256/supporting_bulk_counter_groups b/device/mellanox/x86_64-nvidia_sn5600-r0/Mellanox-SN5600-V256/supporting_bulk_counter_groups new file mode 100644 index 000000000000..178f0575d049 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn5600-r0/Mellanox-SN5600-V256/supporting_bulk_counter_groups @@ -0,0 +1 @@ +QUEUE_WATERMARK_STAT_COUNTER,PG_WATERMARK_STAT_COUNTER,PFC_WD diff --git a/files/build_templates/docker_image_ctl.j2 b/files/build_templates/docker_image_ctl.j2 index 67add27cea53..a47ec61512b4 100644 --- a/files/build_templates/docker_image_ctl.j2 +++ b/files/build_templates/docker_image_ctl.j2 @@ -438,6 +438,10 @@ start() { if [ -f "$CREATE_ONLY_CONFIG_DB_BUFFERS_JSON" ]; then $SONIC_DB_CLI CONFIG_DB HSET 'DEVICE_METADATA|localhost' create_only_config_db_buffers true fi + SUPPORTING_BULK_COUNTER_GROUPS="$HWSKU_FOLDER/supporting_bulk_counter_groups" + if [ -f "$SUPPORTING_BULK_COUNTER_GROUPS" ]; then + $SONIC_DB_CLI CONFIG_DB HSET 'DEVICE_METADATA|localhost' supporting_bulk_counter_groups@ $(cat $SUPPORTING_BULK_COUNTER_GROUPS) + fi fi {%- endif %} diff --git a/files/build_templates/swss_vars.j2 b/files/build_templates/swss_vars.j2 index f35d0fc080ad..53639f01f7f1 100644 --- a/files/build_templates/swss_vars.j2 +++ b/files/build_templates/swss_vars.j2 @@ -7,6 +7,9 @@ "mac": "{{ DEVICE_METADATA.localhost.mac }}", "resource_type": "{{ DEVICE_METADATA.localhost.resource_type }}", "synchronous_mode": {% if DEVICE_METADATA.localhost.synchronous_mode == "disable" %}"disable"{% else %}"enable"{% endif %}, + {%if DEVICE_METADATA.localhost.supporting_bulk_counter_groups is defined and DEVICE_METADATA.localhost.supporting_bulk_counter_groups != '' -%} + "supporting_bulk_counter_groups": "{{ DEVICE_METADATA.localhost.supporting_bulk_counter_groups|join(',') }}", + {% endif -%} "dual_tor": {% if DEVICE_METADATA.localhost.type == "ToRRouter" and DEVICE_METADATA.localhost.subtype == "DualToR" %}"enable"{% else %}"disable"{% endif %}, "dscp_remapping": {% if SYSTEM_DEFAULTS is defined and SYSTEM_DEFAULTS.tunnel_qos_remap is defined and SYSTEM_DEFAULTS.tunnel_qos_remap.status == "enabled" %}"enable"{% else %}"disable"{% endif %} } diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json b/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json index 99310fecc6ab..8e834ed08a90 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json @@ -175,6 +175,9 @@ "desc": "Verifying invalid create_only_config_db_buffers value", "eStrKey": "InvalidValue" }, + "DEVICE_METADATA_VALID_SUPPORTING_BULK_COUNTER_GROUPS": { + "desc": "Verifying the supporting_bulk_counter_groups value" + }, "DEVICE_METADATA_VALID_BGP_ROUTER_ID": { "desc": "Verifying bgp_router_id configuration." }, diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json index 44f0966c8b18..9662741046b6 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json @@ -482,6 +482,15 @@ } } }, + "DEVICE_METADATA_VALID_SUPPORTING_BULK_COUNTER_GROUPS": { + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "sonic-device_metadata:localhost": { + "supporting_bulk_counter_groups": ["QUEUE_WATERMARK_STAT_COUNTER","PG_WATERMARK_STAT_COUNTER"] + } + } + } + }, "DEVICE_METADATA_VALID_BGP_ROUTER_ID": { "sonic-device_metadata:sonic-device_metadata": { "sonic-device_metadata:DEVICE_METADATA": { diff --git a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang index 0d0607fd3cab..0f2f53e8d583 100644 --- a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang +++ b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang @@ -250,6 +250,11 @@ module sonic-device_metadata { created, regardless of the CONFIG_DB buffers configuration."; } + leaf-list supporting_bulk_counter_groups { + type string; + description "This field contains a list of counter groups that support bulk operation."; + } + leaf bgp_router_id { type inet:ipv4-address; description "BGP Router identifier";