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 92d96b54f..a508400f2 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 60386bdd7..cd39cd899 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 11e09f9f2..9f4a10fed 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 {