diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/flex_counter.json b/src/sonic-yang-models/tests/yang_model_tests/tests/flex_counter.json index 92d96b54f3a1..a508400f26d5 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/flex_counter.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/flex_counter.json @@ -7,6 +7,14 @@ "eStrKey": "Range", "eStr": "100..4294967295" }, + "FLEX_COUNTER_TABLE_WITH_VALID_BULK_CHUNK_SIZE": { + "desc": "FLEX_COUNTER_TABLE_WITH_VALID_BULK_CHUNK_SIZE no failure." + }, + "FLEX_COUNTER_TABLE_WITH_INVALID_BULK_CHUNK_SIZE": { + "desc": "Out of range bulk chunk size.", + "eStrKey": "Range", + "eStr": "1..4294967295" + }, "FLOW_COUNTER_ROUTE_PATTERN_TABLE_WITH_VRF": { "desc": "FLOW_COUNTER_ROUTE_PATTERN_TABLE_WITH_VRF no failure." }, diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/flex_counter.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/flex_counter.json index 60386bdd72ea..cd39cd899c78 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/flex_counter.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/flex_counter.json @@ -137,6 +137,150 @@ } } }, + "FLEX_COUNTER_TABLE_WITH_VALID_BULK_CHUNK_SIZE": { + "sonic-flex_counter:sonic-flex_counter": { + "sonic-flex_counter:FLEX_COUNTER_TABLE": { + "BUFFER_POOL_WATERMARK": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 10000 + }, + "DEBUG_COUNTER": { + "FLEX_COUNTER_STATUS": "enable" + }, + "PFCWD": { + "FLEX_COUNTER_STATUS": "enable" + }, + "PG_DROP": { + "FLEX_COUNTER_STATUS": "enable", + "BULK_CHUNK_SIZE": 100, + "POLL_INTERVAL": 10000 + }, + "PG_WATERMARK": { + "FLEX_COUNTER_STATUS": "enable", + "BULK_CHUNK_SIZE": 100, + "POLL_INTERVAL": 10000 + }, + "PORT": { + "FLEX_COUNTER_STATUS": "enable", + "BULK_CHUNK_SIZE": 100, + "POLL_INTERVAL": 1000 + }, + "PORT_BUFFER_DROP": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 60000 + }, + "PORT_RATES": { + "FLEX_COUNTER_STATUS": "enable" + }, + "QUEUE": { + "FLEX_COUNTER_STATUS": "enable", + "BULK_CHUNK_SIZE": 100, + "POLL_INTERVAL": 10000 + }, + "QUEUE_WATERMARK": { + "FLEX_COUNTER_STATUS": "enable", + "BULK_CHUNK_SIZE": 100, + "POLL_INTERVAL": 10000 + }, + "ACL": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 10000 + }, + "TUNNEL": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 10000 + }, + "FLOW_CNT_TRAP": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 10000 + }, + "FLOW_CNT_ROUTE": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 10000 + }, + "WRED_ECN_QUEUE": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 10000 + }, + "WRED_ECN_PORT": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 1000 + } + } + } + }, + "FLEX_COUNTER_TABLE_WITH_INVALID_BULK_CHUNK_SIZE": { + "sonic-flex_counter:sonic-flex_counter": { + "sonic-flex_counter:FLEX_COUNTER_TABLE": { + "BUFFER_POOL_WATERMARK": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 10000 + }, + "DEBUG_COUNTER": { + "FLEX_COUNTER_STATUS": "enable" + }, + "PFCWD": { + "FLEX_COUNTER_STATUS": "enable" + }, + "PG_DROP": { + "FLEX_COUNTER_STATUS": "enable", + "BULK_CHUNK_SIZE": 0, + "POLL_INTERVAL": 10000 + }, + "PG_WATERMARK": { + "FLEX_COUNTER_STATUS": "enable", + "BULK_CHUNK_SIZE": 0, + "POLL_INTERVAL": 10000 + }, + "PORT": { + "FLEX_COUNTER_STATUS": "enable", + "BULK_CHUNK_SIZE": 0, + "POLL_INTERVAL": 1000 + }, + "PORT_BUFFER_DROP": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 60000 + }, + "PORT_RATES": { + "FLEX_COUNTER_STATUS": "enable" + }, + "QUEUE": { + "FLEX_COUNTER_STATUS": "enable", + "BULK_CHUNK_SIZE": 0, + "POLL_INTERVAL": 10000 + }, + "QUEUE_WATERMARK": { + "FLEX_COUNTER_STATUS": "enable", + "BULK_CHUNK_SIZE": 0, + "POLL_INTERVAL": 10000 + }, + "ACL": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 10000 + }, + "TUNNEL": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 10000 + }, + "FLOW_CNT_TRAP": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 10000 + }, + "FLOW_CNT_ROUTE": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 10000 + }, + "WRED_ECN_QUEUE": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 10000 + }, + "WRED_ECN_PORT": { + "FLEX_COUNTER_STATUS": "enable", + "POLL_INTERVAL": 1000 + } + } + } + }, "FLOW_COUNTER_ROUTE_PATTERN_TABLE_WITH_VRF": { "sonic-vrf:sonic-vrf":{ "sonic-vrf:VRF": { diff --git a/src/sonic-yang-models/yang-models/sonic-flex_counter.yang b/src/sonic-yang-models/yang-models/sonic-flex_counter.yang index 11e09f9f2a9f..9f4a10feddba 100644 --- a/src/sonic-yang-models/yang-models/sonic-flex_counter.yang +++ b/src/sonic-yang-models/yang-models/sonic-flex_counter.yang @@ -41,6 +41,12 @@ module sonic-flex_counter { } } + typedef bulk_chunk_size { + type uint32 { + range 1..4294967295; + } + } + description "FLEX_COUNTER_TABLE part of config_db.json"; /* below are in alphabetical order */ @@ -102,6 +108,9 @@ module sonic-flex_counter { leaf POLL_INTERVAL { type poll_interval; } + leaf BULK_CHUNK_SIZE { + type bulk_chunk_size; + } } container PG_WATERMARK { @@ -115,6 +124,9 @@ module sonic-flex_counter { leaf POLL_INTERVAL { type poll_interval; } + leaf BULK_CHUNK_SIZE { + type bulk_chunk_size; + } } container PORT { @@ -128,6 +140,9 @@ module sonic-flex_counter { leaf POLL_INTERVAL { type poll_interval; } + leaf BULK_CHUNK_SIZE { + type bulk_chunk_size; + } } container PORT_RATES { @@ -151,6 +166,9 @@ module sonic-flex_counter { leaf POLL_INTERVAL { type poll_interval; } + leaf BULK_CHUNK_SIZE { + type bulk_chunk_size; + } } container QUEUE { @@ -164,6 +182,9 @@ module sonic-flex_counter { leaf POLL_INTERVAL { type poll_interval; } + leaf BULK_CHUNK_SIZE { + type bulk_chunk_size; + } } container QUEUE_WATERMARK { @@ -177,6 +198,9 @@ module sonic-flex_counter { leaf POLL_INTERVAL { type poll_interval; } + leaf BULK_CHUNK_SIZE { + type bulk_chunk_size; + } } container RIF {