diff --git a/common/test/pldm_utils_test.cpp b/common/test/pldm_utils_test.cpp
index 11bf027..210e27a 100644
--- a/common/test/pldm_utils_test.cpp
+++ b/common/test/pldm_utils_test.cpp
@@ -104,7 +104,7 @@
     state->state_set_id = 196;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     auto record = findStateEffecterPDR(tid, entityID, stateSetId, repo);
 
@@ -137,7 +137,7 @@
     state->state_set_id = 196;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     auto record = findStateEffecterPDR(tid, entityID, stateSetId, repo);
 
@@ -186,7 +186,7 @@
     state->state_set_id = 129;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     std::vector<uint8_t> pdr_second(
         sizeof(struct pldm_state_effecter_pdr) - sizeof(uint8_t) +
@@ -206,7 +206,7 @@
     state_second->state_set_id = 129;
     state_second->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false);
+    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false, 1);
 
     uint16_t entityID_ = 31;
     uint16_t stateSetId_ = 129;
@@ -243,7 +243,7 @@
     state->state_set_id = 198;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     std::vector<uint8_t> pdr_second(
         sizeof(struct pldm_state_effecter_pdr) - sizeof(uint8_t) +
@@ -263,7 +263,7 @@
     state_second->state_set_id = 169;
     state_second->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false);
+    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false, 1);
 
     auto record = findStateEffecterPDR(tid, entityID, stateSetId, repo);
 
@@ -296,7 +296,7 @@
     state->state_set_id = 198;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     std::vector<uint8_t> pdr_second(
         sizeof(struct pldm_state_effecter_pdr) - sizeof(uint8_t) +
@@ -316,7 +316,7 @@
     state_second->state_set_id = 192;
     state_second->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false);
+    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false, 1);
 
     auto record = findStateEffecterPDR(tid, entityID, stateSetId, repo);
 
@@ -350,7 +350,7 @@
     state->state_set_id = 198;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     std::vector<uint8_t> pdr_second(
         sizeof(struct pldm_state_effecter_pdr) - sizeof(uint8_t) +
@@ -370,7 +370,7 @@
     state_second->state_set_id = 192;
     state_second->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false);
+    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false, 1);
 
     std::vector<uint8_t> pdr_third(
         sizeof(struct pldm_state_effecter_pdr) - sizeof(uint8_t) +
@@ -434,7 +434,7 @@
     state->state_set_id = 192;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     auto record = findStateEffecterPDR(tid, entityID, stateSetId, repo);
 
@@ -479,7 +479,7 @@
     state->state_set_id = 123;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     auto record = findStateEffecterPDR(tid, entityID, stateSetId, repo);
 
@@ -512,7 +512,7 @@
     state->state_set_id = 1;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     auto record = findStateSensorPDR(tid, entityID, stateSetId, repo);
 
@@ -545,7 +545,7 @@
     state->state_set_id = 1;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     auto record = findStateSensorPDR(tid, entityID, stateSetId, repo);
 
@@ -594,7 +594,7 @@
     state->state_set_id = 1;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     std::vector<uint8_t> pdr_second(
         sizeof(struct pldm_state_sensor_pdr) - sizeof(uint8_t) +
@@ -614,7 +614,7 @@
     state_second->state_set_id = 1;
     state_second->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false);
+    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false, 1);
 
     uint16_t entityID_ = 5;
     uint16_t stateSetId_ = 1;
@@ -651,7 +651,7 @@
     state->state_set_id = 2;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     std::vector<uint8_t> pdr_second(
         sizeof(struct pldm_state_sensor_pdr) - sizeof(uint8_t) +
@@ -671,7 +671,7 @@
     state_second->state_set_id = 3;
     state_second->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false);
+    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false, 1);
 
     auto record = findStateSensorPDR(tid, entityID, stateSetId, repo);
 
@@ -704,7 +704,7 @@
     state->state_set_id = 20;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     std::vector<uint8_t> pdr_second(
         sizeof(struct pldm_state_sensor_pdr) - sizeof(uint8_t) +
@@ -724,7 +724,7 @@
     state_second->state_set_id = 1;
     state_second->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false);
+    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false, 1);
 
     auto record = findStateSensorPDR(tid, entityID, stateSetId, repo);
 
@@ -758,7 +758,7 @@
     state->state_set_id = 9;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     std::vector<uint8_t> pdr_second(
         sizeof(struct pldm_state_sensor_pdr) - sizeof(uint8_t) +
@@ -778,7 +778,7 @@
     state_second->state_set_id = 1;
     state_second->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false);
+    pldm_pdr_add(repo, pdr_second.data(), pdr_second.size(), 0, false, 1);
 
     std::vector<uint8_t> pdr_third(sizeof(struct pldm_state_sensor_pdr) -
                                    sizeof(uint8_t) +
@@ -843,7 +843,7 @@
     state->state_set_id = 1;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     auto record = findStateSensorPDR(tid, entityID, stateSetId, repo);
 
@@ -888,7 +888,7 @@
     state->state_set_id = 39;
     state->possible_states_size = 1;
 
-    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false);
+    pldm_pdr_add(repo, pdr.data(), pdr.size(), 0, false, 1);
 
     auto record = findStateSensorPDR(tid, entityID, stateSetId, repo);
 
@@ -955,4 +955,4 @@
     std::string s5 = "aa\\";
     auto results5 = split(s5, "\\");
     EXPECT_EQ(results5[0], "aa");
-}
\ No newline at end of file
+}
