diff --git a/src/device/service/drivers/openconfig/OpenConfigDriver.py b/src/device/service/drivers/openconfig/OpenConfigDriver.py
index 8461e83e4c7b07953d8b1e10b56b95d03be59434..c35ae9b9dc610572f77f8e139c5c6f0c76f48e77 100644
--- a/src/device/service/drivers/openconfig/OpenConfigDriver.py
+++ b/src/device/service/drivers/openconfig/OpenConfigDriver.py
@@ -92,7 +92,7 @@ class NetconfSessionHandler:
     def use_candidate(self): return self.__candidate_supported and not self.__force_running
 
     @property
-    def commit_per_delete_rule(self): return self.__commit_per_delete 
+    def commit_per_rule(self): return self.__commit_per_delete 
 
     @RETRY_DECORATOR
     def get(self, filter=None, with_defaults=None): # pylint: disable=redefined-builtin
@@ -284,12 +284,15 @@ class OpenConfigDriver(_Driver):
         with self.__lock:
             if self.__netconf_handler.use_candidate:
                 with self.__netconf_handler.locked(target='candidate'):
-                    results = edit_config(self.__netconf_handler, resources, target='candidate')
-                    try:
-                        self.__netconf_handler.commit()
-                    except Exception as e: # pylint: disable=broad-except
-                        LOGGER.exception('[SetConfig] Exception commiting resources: {:s}'.format(str(resources)))
-                        results = [e for _ in resources] # if commit fails, set exception in each resource
+                    if self.__netconf_handler.commit_per_rule:
+                           results = edit_config(self.__netconf_handler, resources, target='candidate', commit_per_rule= True)
+                    else:
+                        results = edit_config(self.__netconf_handler, resources, target='candidate')
+                        try:
+                            self.__netconf_handler.commit()
+                        except Exception as e: # pylint: disable=broad-except
+                            LOGGER.exception('[SetConfig] Exception commiting resources: {:s}'.format(str(resources)))
+                            results = [e for _ in resources] # if commit fails, set exception in each resource
             else:
                 results = edit_config(self.__netconf_handler, resources)
         return results
@@ -300,7 +303,7 @@ class OpenConfigDriver(_Driver):
         with self.__lock:
             if self.__netconf_handler.use_candidate:
                 with self.__netconf_handler.locked(target='candidate'):
-                    if self.__netconf_handler.commit_per_delete_rule:
+                    if self.__netconf_handler.commit_per_rule:
                            results = edit_config(self.__netconf_handler, resources, target='candidate', delete=True, commit_per_rule= True)
                     else:
                         results = edit_config(self.__netconf_handler, resources, target='candidate', delete=True)