osaf/services/saf/amf/amfd/ckpt_dec.cc       |    2 +-
 osaf/services/saf/amf/amfd/clm.cc            |   12 +-
 osaf/services/saf/amf/amfd/include/node.h    |   27 +---
 osaf/services/saf/amf/amfd/include/su.h      |    1 -
 osaf/services/saf/amf/amfd/main.cc           |    3 +-
 osaf/services/saf/amf/amfd/ndfsm.cc          |   15 +-
 osaf/services/saf/amf/amfd/ndproc.cc         |    7 +-
 osaf/services/saf/amf/amfd/node.cc           |  161 +++++++++-----------------
 osaf/services/saf/amf/amfd/nodegroup.cc      |   31 ++---
 osaf/services/saf/amf/amfd/nodeswbundle.cc   |    5 +-
 osaf/services/saf/amf/amfd/role.cc           |    6 +-
 osaf/services/saf/amf/amfd/sg_2n_fsm.cc      |   21 +--
 osaf/services/saf/amf/amfd/sg_nored_fsm.cc   |   27 +---
 osaf/services/saf/amf/amfd/sg_npm_fsm.cc     |   28 +---
 osaf/services/saf/amf/amfd/sg_nway_fsm.cc    |   39 ++----
 osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc |   25 +--
 osaf/services/saf/amf/amfd/sgproc.cc         |   56 ++------
 osaf/services/saf/amf/amfd/su.cc             |    5 +-
 osaf/services/saf/amf/amfd/util.cc           |    4 +-
 19 files changed, 152 insertions(+), 323 deletions(-)


diff --git a/osaf/services/saf/amf/amfd/ckpt_dec.cc 
b/osaf/services/saf/amf/amfd/ckpt_dec.cc
--- a/osaf/services/saf/amf/amfd/ckpt_dec.cc
+++ b/osaf/services/saf/amf/amfd/ckpt_dec.cc
@@ -3043,7 +3043,7 @@ static uint32_t dec_ng_admin_state(AVD_C
                AVD_AVND *node = avd_node_get(*iter);
                AVD_SU *su = NULL;
                //If this node has any susi on it.
-               for (su = node->list_of_su; su; su = su->avnd_list_su_next) 
+               for (const auto& su : node->list_of_su)
                        if (su->list_of_susi != NULL)
                                break;
                if ((ng->saAmfNGAdminState == SA_AMF_ADMIN_SHUTTING_DOWN) && 
(su != NULL))
diff --git a/osaf/services/saf/amf/amfd/clm.cc 
b/osaf/services/saf/amf/amfd/clm.cc
--- a/osaf/services/saf/amf/amfd/clm.cc
+++ b/osaf/services/saf/amf/amfd/clm.cc
@@ -26,8 +26,6 @@ static SaVersionT clmVersion = { 'B', 4,
 
 static void clm_node_join_complete(AVD_AVND *node)
 {
-       AVD_SU *su;
-
        TRACE_ENTER();
        /* For each of the SUs calculate the readiness state. 
         ** call the SG FSM with the new readiness state.
@@ -39,8 +37,7 @@ static void clm_node_join_complete(AVD_A
        }
 
        avd_node_oper_state_set(node, SA_AMF_OPERATIONAL_ENABLED);
-       su = node->list_of_su;
-       while (su != NULL) {
+       for (const auto& su : node->list_of_su) {
                /* For non-preinstantiable SU unlock-inst will not lead to its 
inst until unlock. */
                if ( su->saAmfSUPreInstantiable == false ) {
                        /* Skip the instantiation. */
@@ -68,8 +65,6 @@ static void clm_node_join_complete(AVD_A
                                }
                        }
                }
-               /* get the next SU on the node */
-               su = su->avnd_list_su_next;
        }
 
        node_reset_su_try_inst_counter(node);
@@ -82,7 +77,6 @@ done:
 /* validating this node for a graceful exit */ 
 static void clm_node_exit_validate(AVD_AVND *node)
 {
-       AVD_SU *su;
        AVD_SU_SI_REL *susi;
        bool reject = false;
        SaAisErrorT rc = SA_AIS_OK;
@@ -99,8 +93,7 @@ static void clm_node_exit_validate(AVD_A
 
        /* now go through each SU to determine whether
         any SI assigned becomes unassigned due to node exit*/
-       su = node->list_of_su;
-       while (su != NULL) {
+       for (const auto& su : node->list_of_su) {
                susi = su->list_of_susi;
                /* now evalutate each SI that is assigned to this SU */
                while (susi != NULL) {
@@ -114,7 +107,6 @@ static void clm_node_exit_validate(AVD_A
                        }
                        susi = susi->su_next;
                }
-               su = su->avnd_list_su_next;
        }
 
 done:
diff --git a/osaf/services/saf/amf/amfd/include/node.h 
b/osaf/services/saf/amf/amfd/include/node.h
--- a/osaf/services/saf/amf/amfd/include/node.h
+++ b/osaf/services/saf/amf/amfd/include/node.h
@@ -43,6 +43,7 @@
 #include <timer.h>
 #include <db_template.h>
 #include <set>
+#include <vector>
 
 class AVD_SU;
 struct avd_cluster_tag;
@@ -76,6 +77,8 @@ class AVD_AVND {
  public:
   AVD_AVND();
   explicit AVD_AVND(const SaNameT* dn);
+
+  bool is_node_lock();
   SaNameT name; /* DN */ 
   char *node_name;    /* RDN value, normally the short host name */
   SaClmClusterNodeT_4 node_info;       /* the node information of the node on
@@ -112,10 +115,10 @@ class AVD_AVND {
                                  * Checkpointing - Sent independent update 
                                  */
 
-  AVD_SU *list_of_ncs_su;      /* the list of NCS service units on
+  std::vector<AVD_SU*> list_of_ncs_su; /* the list of NCS service units on
                                  * this node.
                                  */
-  AVD_SU *list_of_su;  /* the list of service units on this
+  std::vector<AVD_SU*> list_of_su;     /* the list of service units on this
                          * node that are application specific.
                          */
   NCS_DB_LINK_LIST pg_csi_list;        /* list of csis for which pg is tracked 
@@ -192,26 +195,6 @@ node->rcv_msg_id = rcvid;\
 m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(cb, node, AVSV_CKPT_AVND_RCV_MSG_ID);\
 }
 
-#define m_AVD_IS_NODE_LOCK(node,flag)\
-{\
-   AVD_SU *i_su;\
-   AVD_SU_SI_REL *curr_susi = 0; \
-   flag = true;\
-   i_su = node->list_of_su;\
-   while ((i_su != NULL) && (flag == true))\
-   {\
-      if ((i_su->sg_of_su->sg_fsm_state == AVD_SG_FSM_SU_OPER) ||\
-          (i_su->sg_of_su->sg_fsm_state == AVD_SG_FSM_SG_REALIGN)) { \
-         for (curr_susi = i_su->list_of_susi; \
-              (curr_susi) && ((SA_AMF_HA_QUIESCING != curr_susi->state) ||\
-              ((AVD_SU_SI_STATE_UNASGN == curr_susi->fsm))); \
-              curr_susi = curr_susi->su_next); \
-         if (curr_susi) flag = false; \
-      } \
-      i_su = i_su->avnd_list_su_next;\
-   }\
-}
-
 /* AMF Node */
 extern AVD_AVND *avd_node_new(const SaNameT *dn);
 extern void avd_node_delete(AVD_AVND *avnd);
diff --git a/osaf/services/saf/amf/amfd/include/su.h 
b/osaf/services/saf/amf/amfd/include/su.h
--- a/osaf/services/saf/amf/amfd/include/su.h
+++ b/osaf/services/saf/amf/amfd/include/su.h
@@ -94,7 +94,6 @@ class AVD_SU {
        AVD_COMP *list_of_comp; /* the list of  components in this SU */
 
        AVD_SU *sg_list_su_next;        /* the next SU in the SG */
-       AVD_SU *avnd_list_su_next;      /* the next SU in the AvND */
        AVD_SUTYPE *su_type;
        AVD_SU *su_list_su_type_next;
 
diff --git a/osaf/services/saf/amf/amfd/main.cc 
b/osaf/services/saf/amf/amfd/main.cc
--- a/osaf/services/saf/amf/amfd/main.cc
+++ b/osaf/services/saf/amf/amfd/main.cc
@@ -409,8 +409,7 @@ static void handle_event_in_failover_sta
                        if (AVD_AVND_STATE_ABSENT == node->node_state) {
                                /* Check whether this node failover has been
                                   performed or not. */
-                               for (AVD_SU *i_su = node->list_of_ncs_su; i_su;
-                                               i_su = i_su->avnd_list_su_next) 
{
+                               for (const auto& i_su : node->list_of_ncs_su) {
                                        if 
((i_su->sg_of_su->sg_redundancy_model == SA_AMF_NO_REDUNDANCY_MODEL) &&
                                                        (i_su->list_of_susi == 
NULL)) {
                                                fover_done = true;
diff --git a/osaf/services/saf/amf/amfd/ndfsm.cc 
b/osaf/services/saf/amf/amfd/ndfsm.cc
--- a/osaf/services/saf/amf/amfd/ndfsm.cc
+++ b/osaf/services/saf/amf/amfd/ndfsm.cc
@@ -186,21 +186,15 @@ done:
 
 void avd_nd_ncs_su_assigned(AVD_CL_CB *cb, AVD_AVND *avnd)
 {
-       AVD_SU *ncs_su, *su;
-
        TRACE_ENTER();
 
-       ncs_su = avnd->list_of_ncs_su;
-
-       while (ncs_su != NULL) {
+       for (const auto& ncs_su : avnd->list_of_ncs_su) {
                if ((ncs_su->list_of_susi == AVD_SU_SI_REL_NULL) ||
                    (ncs_su->list_of_susi->fsm != AVD_SU_SI_STATE_ASGND)) {
                        TRACE_LEAVE();
                        /* this is an unassigned SU so no need to scan further 
return here. */
                        return;
                }
-
-               ncs_su = ncs_su->avnd_list_su_next;
        }
 
        /* All the NCS SUs are assigned now change the state to present */
@@ -209,7 +203,7 @@ void avd_nd_ncs_su_assigned(AVD_CL_CB *c
                avd_node_oper_state_set(avnd, SA_AMF_OPERATIONAL_ENABLED);
 
                /* Make application SUs operational state ENABLED */
-               for (su = avnd->list_of_su; su != NULL; su = 
su->avnd_list_su_next) {
+               for (const auto& su : avnd->list_of_su) {
                        su->set_oper_state(SA_AMF_OPERATIONAL_ENABLED);
                        AVD_COMP *comp;
                        for (comp = su->list_of_comp; comp; comp = 
comp->su_comp_next)
@@ -468,7 +462,6 @@ void avd_fail_over_event(AVD_CL_CB *cb)
 void avd_ack_nack_evh(AVD_CL_CB *cb, AVD_EVT *evt)
 {
        AVD_AVND *avnd;
-       AVD_SU *su_ptr;
        AVD_SU_SI_REL *rel_ptr;
        AVD_DND_MSG *n2d_msg;
        bool node_found = false;
@@ -546,7 +539,7 @@ void avd_ack_nack_evh(AVD_CL_CB *cb, AVD
                 * Send SU_SI relationship which are in ASSIGN, MODIFY and  
                 * UNASSIGN state.for this node.
                 */
-               for (su_ptr = avnd->list_of_ncs_su; su_ptr != NULL; su_ptr = 
su_ptr->avnd_list_su_next) {
+               for (const auto& su_ptr : avnd->list_of_ncs_su) {
                        for (rel_ptr = su_ptr->list_of_susi; rel_ptr != NULL; 
rel_ptr = rel_ptr->su_next) {
                                if ((AVD_SU_SI_STATE_ASGND == rel_ptr->fsm) || 
(AVD_SU_SI_STATE_ABSENT == rel_ptr->fsm))
                                        continue;
@@ -568,7 +561,7 @@ void avd_ack_nack_evh(AVD_CL_CB *cb, AVD
                /*
                 * We have take care of NCS SU's, now do the same for normal 
SU's.
                 */
-               for (su_ptr = avnd->list_of_su; su_ptr != NULL; su_ptr = 
su_ptr->avnd_list_su_next) {
+               for (const auto& su_ptr : avnd->list_of_su) {
                        /* check if susi. If not continue */
                        if (!su_ptr->list_of_susi)
                                continue;
diff --git a/osaf/services/saf/amf/amfd/ndproc.cc 
b/osaf/services/saf/amf/amfd/ndproc.cc
--- a/osaf/services/saf/amf/amfd/ndproc.cc
+++ b/osaf/services/saf/amf/amfd/ndproc.cc
@@ -146,13 +146,12 @@ void avd_reg_su_evh(AVD_CL_CB *cb, AVD_E
         */
 
        if (n2d_msg->msg_info.n2d_reg_su.error == NCSCC_RC_SUCCESS) {
-               AVD_SU *su;
 
                /* the node has been successfully updated with SU information */
                avd_node_state_set(node, AVD_AVND_STATE_NCS_INIT);
 
                /* Instantiate all OpenSAF SUs on this node */
-               for (su = node->list_of_ncs_su; su != NULL; su = 
su->avnd_list_su_next) {
+               for (const auto& su : node->list_of_ncs_su) {
                        if ((su->saAmfSUAdminState == SA_AMF_ADMIN_UNLOCKED) ||
                            (su->saAmfSUAdminState == SA_AMF_ADMIN_LOCKED)) {
                                avd_snd_presence_msg(cb, su, false);
@@ -520,9 +519,7 @@ node_walk:
                TRACE("node name '%s', Oper'%u'", node->name.value, 
node->saAmfNodeOperState);
                if (node->saAmfNodeOperState == SA_AMF_OPERATIONAL_ENABLED)
                {
-                       AVD_SU *su_ptr;
-                       su_ptr = node->list_of_su;
-                       for (su_ptr = node->list_of_su; su_ptr != NULL; su_ptr 
= su_ptr->avnd_list_su_next) {
+                       for (const auto& su_ptr : node->list_of_su) {
                                if ((su_ptr->saAmfSUAdminState != 
SA_AMF_ADMIN_LOCKED_INSTANTIATION) &&
                                                
(su_ptr->sg_of_su->saAmfSGAdminState != 
                                                 
SA_AMF_ADMIN_LOCKED_INSTANTIATION) &&
diff --git a/osaf/services/saf/amf/amfd/node.cc 
b/osaf/services/saf/amf/amfd/node.cc
--- a/osaf/services/saf/amf/amfd/node.cc
+++ b/osaf/services/saf/amf/amfd/node.cc
@@ -24,6 +24,7 @@
 #include <amfd.h>
 #include <cluster.h>
 #include <imm.h>
+#include <algorithm>
 
 AmfDb<std::string, AVD_AVND> *node_name_db = 0;        /* SaNameT index */
 AmfDb<uint32_t, AVD_AVND> *node_id_db = 0;     /* SaClmNodeIdT index */
@@ -79,6 +80,23 @@ void avd_node_db_add(AVD_AVND *node)
 }
 
 //
+bool AVD_AVND::is_node_lock() {
+  AVD_SU_SI_REL *curr_susi;
+  for (const auto& su : list_of_su) {
+    if ((su->sg_of_su->sg_fsm_state == AVD_SG_FSM_SU_OPER) ||
+        (su->sg_of_su->sg_fsm_state == AVD_SG_FSM_SG_REALIGN)) {
+      for (curr_susi = su->list_of_susi;
+           (curr_susi) && ((SA_AMF_HA_QUIESCING != curr_susi->state) ||
+                           ((AVD_SU_SI_STATE_UNASGN == curr_susi->fsm)));
+           curr_susi = curr_susi->su_next); \
+      if (curr_susi)
+        return false;
+    }
+  }
+  return true;
+}
+
+//
 void AVD_AVND::initialize() {
   name = {};
   node_name = {};
@@ -453,7 +471,6 @@ static SaAisErrorT node_ccb_completed_de
 {
        SaAisErrorT rc = SA_AIS_OK;
        AVD_AVND *node = avd_node_get(&opdata->objectName);
-       AVD_SU *su; 
        bool su_exist = false;
        CcbUtilOperationData_t *t_opData;
 
@@ -476,18 +493,16 @@ static SaAisErrorT node_ccb_completed_de
        }
 
        /* Check to see that no SUs exists on this node */
-       if (node->list_of_su != NULL) {
+       if (node->list_of_su.empty() != true) {
                /* check whether there exists a delete operation for 
                 * each of the SU in the node list in the current CCB 
                 */                      
-               su = node->list_of_su;
-               while (su != NULL) {  
+               for (const auto& su : node->list_of_su) {
                        t_opData = ccbutil_getCcbOpDataByDN(opdata->ccbId, 
&su->name);
                        if ((t_opData == NULL) || (t_opData->operationType != 
CCBUTIL_DELETE)) {
                                su_exist = true;   
                                break;                  
                        }                       
-                       su = su->avnd_list_su_next;
                }                       
                if (su_exist == true) {
                        report_ccb_validation_error(opdata, "Node '%s' still 
has SUs", opdata->objectName.value);
@@ -778,14 +793,12 @@ void node_admin_state_set(AVD_AVND *node
  */
 uint32_t avd_node_admin_lock_instantiation(AVD_AVND *node)
 {
-       AVD_SU *su;
        uint32_t rc = NCSCC_RC_SUCCESS;
 
        TRACE_ENTER2("%s", node->name.value);
 
        /* terminate all the SUs on this Node */
-       su = node->list_of_su;
-       while (su != NULL) {
+       for (const auto& su : node->list_of_su) {
                if ((su->saAmfSUPreInstantiable == true) &&
                    (su->saAmfSUPresenceState != 
SA_AMF_PRESENCE_UNINSTANTIATED) &&
                    (su->saAmfSUPresenceState != 
SA_AMF_PRESENCE_INSTANTIATION_FAILED) &&
@@ -798,7 +811,6 @@ uint32_t avd_node_admin_lock_instantiati
                                LOG_WA("Failed Termination '%s'", 
su->name.value);
                        }
                }
-               su = su->avnd_list_su_next;
        }
 
        TRACE_LEAVE2("%u, %u", rc, node->su_cnt_admin_oper);
@@ -812,14 +824,12 @@ uint32_t avd_node_admin_lock_instantiati
  */
 uint32_t node_admin_unlock_instantiation(AVD_AVND *node)
 {
-       AVD_SU *su;
        uint32_t rc = NCSCC_RC_SUCCESS;
 
        TRACE_ENTER2("%s", node->name.value);
 
        /* instantiate the SUs on this Node */
-       su = node->list_of_su;
-       while (su != NULL) {
+       for (const auto& su : node->list_of_su) {
                if ((su->saAmfSUAdminState != 
SA_AMF_ADMIN_LOCKED_INSTANTIATION) &&
                    (su->sg_of_su->saAmfSGAdminState != 
SA_AMF_ADMIN_LOCKED_INSTANTIATION) &&
                    (su->saAmfSUPresenceState == 
SA_AMF_PRESENCE_UNINSTANTIATED) && 
@@ -839,7 +849,6 @@ uint32_t node_admin_unlock_instantiation
                                }
                        } 
                }
-               su = su->avnd_list_su_next;
        }
 
        node_reset_su_try_inst_counter(node);
@@ -859,7 +868,7 @@ void avd_node_admin_lock_unlock_shutdown
                                    SaInvocationT invocation, 
SaAmfAdminOperationIdT operationId)
 {
        AVD_CL_CB *cb = (AVD_CL_CB *)avd_cb;
-       AVD_SU *su, *su_sg;
+       AVD_SU *su_sg;
        bool su_admin = false;
        AVD_SU_SI_REL *curr_susi;
        AVD_AVND *su_node_ptr = NULL;
@@ -900,8 +909,8 @@ void avd_node_admin_lock_unlock_shutdown
        switch (new_admin_state) {
        case SA_AMF_ADMIN_UNLOCKED:
 
-               su = node->list_of_su;
-               while (su != NULL) {
+               for (const auto& su : node->list_of_su) {
+
                        /* if SG to which this SU belongs and has SI 
assignments is undergoing 
                         * su semantics return error.
                         */
@@ -918,9 +927,6 @@ void avd_node_admin_lock_unlock_shutdown
                                                        "invalid sg state %u 
for unlock", su->sg_of_su->sg_fsm_state);
                                goto end;
                        }
-
-                       /* get the next SU on the node */
-                       su = su->avnd_list_su_next;
                }               /* while(su != AVD_SU_NULL) */
 
                /* For each of the SUs calculate the readiness state. This 
routine is called
@@ -935,8 +941,7 @@ void avd_node_admin_lock_unlock_shutdown
                node->admin_node_pend_cbk.admin_oper = operationId;
                node->su_cnt_admin_oper = 0;
 
-               su = node->list_of_su;
-               while (su != NULL) {
+               for (const auto& su : node->list_of_su) {
                        if (su->is_in_service() == true) {
                                
su->set_readiness_state(SA_AMF_READINESS_IN_SERVICE);
                                su->sg_of_su->su_insvc(cb, su);
@@ -946,9 +951,6 @@ void avd_node_admin_lock_unlock_shutdown
                                 */
                        }
                        avd_sg_app_su_inst_func(cb, su->sg_of_su);
-
-                       /* get the next SU on the node */
-                       su = su->avnd_list_su_next;
                }
                if (node->su_cnt_admin_oper == 0 && invocation != 0) {
                        avd_saImmOiAdminOperationResult(cb->immOiHandle, 
invocation, SA_AIS_OK);
@@ -961,8 +963,7 @@ void avd_node_admin_lock_unlock_shutdown
        case SA_AMF_ADMIN_LOCKED:
        case SA_AMF_ADMIN_SHUTTING_DOWN:
 
-               su = node->list_of_su;
-               while (su != NULL) {
+               for (const auto& su : node->list_of_su) {
                        if (su->list_of_susi != AVD_SU_SI_REL_NULL) {
                                is_assignments_done = true;
                                /* verify that two assigned SUs belonging to 
the same SG are not
@@ -1033,11 +1034,7 @@ void avd_node_admin_lock_unlock_shutdown
                                }
 
                        }
-
-                       /* if(su->list_of_susi != AVD_SU_SI_REL_NULL) */
-                       /* get the next SU on the node */
-                       su = su->avnd_list_su_next;
-               }               /* while(su != AVD_SU_NULL) */
+               }               /* for (const auto& su : node->list_of_su) */
 
                if(invocation != 0) {
                        node_admin_state_set(node, new_admin_state);
@@ -1052,8 +1049,7 @@ void avd_node_admin_lock_unlock_shutdown
                }
 
                /* Now call the SG FSM for each of the SUs that have SI 
assignment. */
-               su = node->list_of_su;
-               while (su != NULL) {
+               for (const auto& su : node->list_of_su) {
                        is_assignments_done = false;
                        
su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
                        if (su->list_of_susi != AVD_SU_SI_REL_NULL) {
@@ -1069,9 +1065,6 @@ void avd_node_admin_lock_unlock_shutdown
                                node->su_cnt_admin_oper++;
                                TRACE("su_cnt_admin_oper:%u", 
node->su_cnt_admin_oper);
                        }
-
-                       /* get the next SU on the node */
-                       su = su->avnd_list_su_next;
                }
 
                if ((node->saAmfNodeAdminState == SA_AMF_ADMIN_SHUTTING_DOWN) 
&& (su_admin == false)) {
@@ -1101,9 +1094,7 @@ void avd_node_admin_lock_unlock_shutdown
  */
 static void node_sus_termstate_set(AVD_AVND *node, bool term_state)
 {
-       AVD_SU *su;
-
-       for (su = node->list_of_su; su; su = su->avnd_list_su_next) {
+       for (const auto& su : node->list_of_su) {
                if (su->saAmfSUPreInstantiable == true)
                        su->set_term_state(term_state);
        }
@@ -1123,7 +1114,6 @@ static void node_admin_op_cb(SaImmOiHand
                             const SaImmAdminOperationParamsT_2 **params)
 {
        AVD_AVND *node;
-       AVD_SU *su = NULL;
        SaAisErrorT rc = SA_AIS_OK;
 
        TRACE_ENTER2("%llu, '%s', %llu", invocation, objectName->value, 
operationId);
@@ -1141,8 +1131,7 @@ static void node_admin_op_cb(SaImmOiHand
 
        /* Check for any conflicting admin operations */
 
-       su = node->list_of_su;
-       while (su != NULL) {
+       for (const auto& su : node->list_of_su) {
                if (su->pend_cbk.admin_oper != 0) {
                        report_admin_op_error(immOiHandle, invocation, 
SA_AIS_ERR_TRY_AGAIN, NULL,
                                        "SU on this node is undergoing admin op 
(%s)", su->name.value);
@@ -1163,7 +1152,6 @@ static void node_admin_op_cb(SaImmOiHand
                                        su->sg_of_su->name.value, 
su->name.value);
                        goto done;
                }
-               su = su->avnd_list_su_next;
        }
 
        if (node->clm_pend_inv != 0) {
@@ -1220,7 +1208,7 @@ static void node_admin_op_cb(SaImmOiHand
 
                if (avd_cb->init_state == AVD_INIT_DONE) {
                        node_admin_state_set(node, SA_AMF_ADMIN_UNLOCKED);
-                       for(su = node->list_of_su; su != NULL; su = 
su->avnd_list_su_next) {
+                       for (const auto& su : node->list_of_su) {
                                if (su->is_in_service() == true) {
                                        
su->set_readiness_state(SA_AMF_READINESS_IN_SERVICE);
                                }
@@ -1255,7 +1243,7 @@ static void node_admin_op_cb(SaImmOiHand
 
                if (avd_cb->init_state == AVD_INIT_DONE) {
                        node_admin_state_set(node, SA_AMF_ADMIN_LOCKED);
-                       for(su = node->list_of_su; su != NULL; su = 
su->avnd_list_su_next) {
+                       for (const auto& su : node->list_of_su) {
                                
su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
                        }
                        avd_saImmOiAdminOperationResult(immOiHandle, 
invocation, SA_AIS_OK);
@@ -1381,69 +1369,34 @@ static void node_admin_op_cb(SaImmOiHand
 
 void avd_node_add_su(AVD_SU *su)
 {
-       AVD_SU *i_su;
-       AVD_SU *prev_su = NULL;
-
        if (strstr((char *)su->name.value, "safApp=OpenSAF") != NULL) {
-               i_su = su->su_on_node->list_of_ncs_su;
+               su->su_on_node->list_of_ncs_su.push_back(su);
+               std::sort(su->su_on_node->list_of_ncs_su.begin(), 
su->su_on_node->list_of_ncs_su.end(),
+                       [](const AVD_SU *a, const AVD_SU *b) -> bool {return 
a->saAmfSURank < b->saAmfSURank;});
        } else {
-               i_su = su->su_on_node->list_of_su;
-       }
-
-       for(;(i_su != NULL && i_su->saAmfSURank < su->saAmfSURank);i_su = 
i_su->avnd_list_su_next)
-               prev_su = i_su;
-
-       if (prev_su == NULL) {
-               if (strstr((char *)su->name.value, "safApp=OpenSAF") != NULL) {
-                       su->avnd_list_su_next = su->su_on_node->list_of_ncs_su;
-                       su->su_on_node->list_of_ncs_su = su;
-               } else {
-                       su->avnd_list_su_next = su->su_on_node->list_of_su;
-                       su->su_on_node->list_of_su = su;
-               }
-       } else {
-               prev_su->avnd_list_su_next = su;
-               su->avnd_list_su_next = i_su;
+               su->su_on_node->list_of_su.push_back(su);
+               std::sort(su->su_on_node->list_of_su.begin(), 
su->su_on_node->list_of_su.end(),
+                       [](const AVD_SU *a, const AVD_SU *b) -> bool {return 
a->saAmfSURank < b->saAmfSURank;});
        }
 }
 
-void avd_node_remove_su(AVD_SU *su)
-{
-       AVD_SU *i_su = NULL;
-       AVD_SU *prev_su = NULL;
-       bool isNcs;
+void avd_node_remove_su(AVD_SU *su) {
+  std::vector<AVD_SU*> *su_list;
 
-       if ((su->sg_of_su) && (su->sg_of_su->sg_ncs_spec == true))
-               isNcs = true;
-       else
-               isNcs = false;
+  if ((su->sg_of_su) && (su->sg_of_su->sg_ncs_spec == true)) {
+    su_list = &su->su_on_node->list_of_ncs_su;
+  }
+  else {
+    su_list = &su->su_on_node->list_of_su;
+  }
 
-       /* For external component, there is no AvND attached, so let it return. 
*/
-       if (su->su_on_node != NULL) {
-               /* remove SU from node */
-               i_su = (isNcs) ? su->su_on_node->list_of_ncs_su : 
su->su_on_node->list_of_su;
-
-               while ((i_su != NULL) && (i_su != su)) {
-                       prev_su = i_su;
-                       i_su = i_su->avnd_list_su_next;
-               }
-
-               if (i_su != su) {
-                       osafassert(0);
-               } else {
-                       if (prev_su == NULL) {
-                               if (isNcs)
-                                       su->su_on_node->list_of_ncs_su = 
su->avnd_list_su_next;
-                               else
-                                       su->su_on_node->list_of_su = 
su->avnd_list_su_next;
-                       } else {
-                               prev_su->avnd_list_su_next = 
su->avnd_list_su_next;
-                       }
-               }
-
-               su->avnd_list_su_next = NULL;
-               su->su_on_node = NULL;
-       }
+  auto pos = std::find(su_list->begin(), su_list->end(), su);
+  if(pos != su_list->end()) {
+    su_list->erase(pos);
+  } else {
+    /* Log a fatal error */
+    osafassert(0);
+  }
 }
 
 /**
@@ -1454,13 +1407,9 @@ void avd_node_remove_su(AVD_SU *su)
  */
 void node_reset_su_try_inst_counter(const AVD_AVND *node)
 {
-        AVD_SU *su;
-
        /* Reset the counters.*/
-       su = node->list_of_su;
-       while (su != NULL) {
+       for (const auto& su : node->list_of_su) {
                su->sg_of_su->try_inst_counter = 0;
-               su = su->avnd_list_su_next;
        }
 }
 /**
diff --git a/osaf/services/saf/amf/amfd/nodegroup.cc 
b/osaf/services/saf/amf/amfd/nodegroup.cc
--- a/osaf/services/saf/amf/amfd/nodegroup.cc
+++ b/osaf/services/saf/amf/amfd/nodegroup.cc
@@ -292,7 +292,6 @@ static SaAisErrorT ng_ccb_completed_modi
        unsigned j = 0;
        const SaImmAttrModificationT_2 *mod;
        AVD_AVND *node;
-       AVD_SU *su;
        int delete_found = 0;
        int add_found = 0;
        int nodes_deleted = 0;
@@ -336,7 +335,7 @@ static SaAisErrorT ng_ccb_completed_modi
                                /* Ensure no SU is mapped to this node via the 
node group */
 
                                /* for all OpenSAF SUs hosted by this node */
-                               for (su = node->list_of_ncs_su; su; su = 
su->avnd_list_su_next) {
+                               for (const auto& su : node->list_of_ncs_su) {
                                        if 
(su_is_mapped_to_node_via_nodegroup(su, ng)) {
                                                
report_ccb_validation_error(opdata, "Cannot delete '%s' from '%s'."
                                                                " An SU is 
mapped using node group",
@@ -347,7 +346,7 @@ static SaAisErrorT ng_ccb_completed_modi
                                }
 
                                /* for all application SUs hosted by this node 
*/
-                               for (su = node->list_of_su; su; su = 
su->avnd_list_su_next) {
+                               for (const auto& su : node->list_of_su) {
                                        if 
(su_is_mapped_to_node_via_nodegroup(su, ng)) {
                                                
report_ccb_validation_error(opdata, "Cannot delete '%s' from '%s'."
                                                                " An SU is 
mapped using node group",
@@ -432,7 +431,6 @@ static bool is_deleted_in_ccb(SaImmOiCcb
 static SaAisErrorT ng_ccb_completed_delete_hdlr(CcbUtilOperationData_t *opdata)
 {
        SaAisErrorT rc = SA_AIS_ERR_BAD_OPERATION;
-       AVD_SU *su;
        AVD_AVND *node;
        AVD_AMF_NG *ng = avd_ng_get(&opdata->objectName);
 
@@ -459,8 +457,7 @@ static SaAisErrorT ng_ccb_completed_dele
                ** application removal), reject the deletion.
                ** If no SU is mapped, deletion is OK.
                */
-
-               for (su = node->list_of_ncs_su; su; su = su->avnd_list_su_next) 
{
+               for (const auto& su : node->list_of_ncs_su) {
                        if (su_is_mapped_to_node_via_nodegroup(su, ng) &&
                                is_deleted_in_ccb(opdata->ccbId, &su->name) == 
false) {
                                report_ccb_validation_error(opdata, "Cannot 
delete '%s' because '%s' is mapped using it",
@@ -469,7 +466,7 @@ static SaAisErrorT ng_ccb_completed_dele
                        }
                }
 
-               for (su = node->list_of_su; su; su = su->avnd_list_su_next) {
+               for (const auto& su : node->list_of_su) {
                        if (su_is_mapped_to_node_via_nodegroup(su, ng) &&
                                is_deleted_in_ccb(opdata->ccbId, &su->name) == 
false) {
                                report_ccb_validation_error(opdata, "Cannot 
delete '%s' because '%s' is mapped using it",
@@ -632,8 +629,7 @@ static SaAisErrorT check_node_stability(
                rc = SA_AIS_ERR_TRY_AGAIN;
                 goto done;
         }
-       for (AVD_SU *su = node->list_of_su; su != NULL;  
-                       su = su->avnd_list_su_next) {
+       for (const auto& su : node->list_of_su) {
                rc = su->sg_of_su->check_sg_stability();        
                if (rc != SA_AIS_OK)
                        goto done;
@@ -657,8 +653,7 @@ static SaAisErrorT check_red_model_servi
        for (std::set<std::string>::const_iterator iter = 
ng->saAmfNGNodeList.begin();
                        iter != ng->saAmfNGNodeList.end(); ++iter) {
                AVD_AVND *node = avd_node_get(*iter);
-               for (AVD_SU *su = node->list_of_su; su != NULL;  
-                               su = su->avnd_list_su_next) {
+               for (const auto& su : node->list_of_su) {
                        //Make a temorary list_of_SG for later verification of 
service outage.
                        tmp_sg_list.insert(Amf::to_string(&su->sg_of_su->name));
                }
@@ -756,14 +751,14 @@ void ng_node_lock_and_shutdown(AVD_AVND 
        }
        if (avd_cb->init_state == AVD_INIT_DONE) {
                node_admin_state_set(node, SA_AMF_ADMIN_LOCKED);
-               for(AVD_SU *su = node->list_of_su; su != NULL; su = 
su->avnd_list_su_next) {
+               for (const auto& su : node->list_of_su) {
                        
su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
                }
                return;
        }
        if (node->saAmfNodeOperState == SA_AMF_OPERATIONAL_DISABLED)
                return;
-       for (AVD_SU *su = node->list_of_su; su != NULL;  su = 
su->avnd_list_su_next) {
+       for (const auto& su : node->list_of_su) {
                su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
                su->sg_of_su->ng_admin(su, node->admin_ng);
        }
@@ -803,7 +798,7 @@ void ng_unlock(AVD_AMF_NG *ng)
                                (node->saAmfNodeAdminState == 
SA_AMF_ADMIN_LOCKED_INSTANTIATION) ||
                                (node->node_info.member == false)) 
                        continue;
-               for (AVD_SU *su = node->list_of_su; su != NULL;  su = 
su->avnd_list_su_next) {
+               for (const auto& su : node->list_of_su) {
                        if (su->is_in_service() == true) {
                                
su->set_readiness_state(SA_AMF_READINESS_IN_SERVICE);
                        }
@@ -821,7 +816,7 @@ void ng_unlock(AVD_AMF_NG *ng)
                   By this time Nodes of node group are in unlocked state.Let 
the
                   SG semantics decide which su to chose for assignment and 
instantiation. 
                 */
-               for (AVD_SU *su = node->list_of_su; su != NULL;  su = 
su->avnd_list_su_next) {
+               for (const auto& su : node->list_of_su) {
                        su->sg_of_su->su_insvc(avd_cb, su);
                        avd_sg_app_su_inst_func(avd_cb, su->sg_of_su);
                }
@@ -838,9 +833,7 @@ void ng_unlock(AVD_AMF_NG *ng)
  */
 static void node_sus_termstate_set(AVD_AVND *node, bool term_state)
 {
-       AVD_SU *su;
-
-       for (su = node->list_of_su; su; su = su->avnd_list_su_next) {
+       for (const auto& su : node->list_of_su) {
                if (su->saAmfSUPreInstantiable == true)
                        su->set_term_state(term_state);
        }
@@ -870,7 +863,7 @@ static void ng_admin_unlock_inst(AVD_AMF
                        LOG_NO("'%s' UNLOCK_INSTANTIATION: AMF node oper state 
disabled", node->name.value);
                        continue;
                }
-               for (AVD_SU *node_su = node->list_of_su; node_su != NULL;  
node_su = node_su->avnd_list_su_next) {
+               for (const auto& node_su : node->list_of_su) {
                        /*Instantiate only those SUs in this SG which are 
hosted on the Nodes of NG.
                           Also honor saAmfSURank while instantating.
                         */
diff --git a/osaf/services/saf/amf/amfd/nodeswbundle.cc 
b/osaf/services/saf/amf/amfd/nodeswbundle.cc
--- a/osaf/services/saf/amf/amfd/nodeswbundle.cc
+++ b/osaf/services/saf/amf/amfd/nodeswbundle.cc
@@ -69,13 +69,12 @@ static int is_config_valid(const SaNameT
  * @return int
  */
 static int is_swbdl_delete_ok_for_node(const SaNameT *bundle_dn_to_delete,
-       const SaNameT *node_dn, const AVD_SU *su_list, CcbUtilOperationData_t 
*opdata)
+       const SaNameT *node_dn, const std::vector<AVD_SU*> &su_list, 
CcbUtilOperationData_t *opdata)
 {
-       const AVD_SU *su;
        const AVD_COMP *comp;
        SaNameT bundle_dn;
 
-       for (su = su_list; su != NULL; su = su->avnd_list_su_next) {
+       for (const auto& su : su_list) {
                for (comp = su->list_of_comp; comp != NULL; comp = 
comp->su_comp_next) {
                        
avsv_create_association_class_dn(&comp->comp_type->saAmfCtSwBundle, 
                                node_dn, "safInstalledSwBundle", &bundle_dn);
diff --git a/osaf/services/saf/amf/amfd/role.cc 
b/osaf/services/saf/amf/amfd/role.cc
--- a/osaf/services/saf/amf/amfd/role.cc
+++ b/osaf/services/saf/amf/amfd/role.cc
@@ -550,7 +550,6 @@ static uint32_t avd_role_failover_qsd_ac
 void avd_role_switch_ncs_su_evh(AVD_CL_CB *cb, AVD_EVT *evt)
 {
        AVD_AVND *avnd = NULL, *other_avnd = NULL;
-       AVD_SU *i_su = NULL;
 
        TRACE_ENTER();
 
@@ -561,7 +560,7 @@ void avd_role_switch_ncs_su_evh(AVD_CL_C
        }
        other_avnd = avd_node_find_nodeid(cb->node_id_avd_other);
 
-       for (i_su = avnd->list_of_ncs_su; i_su != NULL; i_su = 
i_su->avnd_list_su_next) {
+       for (const auto& i_su : avnd->list_of_ncs_su) {
                if ((i_su->list_of_susi != 0) &&
                    (i_su->sg_of_su->sg_redundancy_model == 
SA_AMF_2N_REDUNDANCY_MODEL) &&
                    (i_su->list_of_susi->state != SA_AMF_HA_ACTIVE)) {
@@ -742,7 +741,6 @@ try_again:
 void amfd_switch(AVD_CL_CB *cb)
 {
        AVD_AVND *avnd = NULL;  
-       AVD_SU *i_su = NULL;
 
        TRACE_ENTER();
 
@@ -753,7 +751,7 @@ void amfd_switch(AVD_CL_CB *cb)
        /* get the avnd from node_id */
        avnd = avd_node_find_nodeid(cb->node_id_avd);
 
-       for (i_su = avnd->list_of_ncs_su; i_su != NULL; i_su = 
i_su->avnd_list_su_next) {
+       for (const auto& i_su : avnd->list_of_ncs_su) {
                if ((i_su->list_of_susi != 0) &&
                    (i_su->sg_of_su->sg_redundancy_model == 
SA_AMF_2N_REDUNDANCY_MODEL) &&
                    (i_su->list_of_susi->state == SA_AMF_HA_ACTIVE)) {
diff --git a/osaf/services/saf/amf/amfd/sg_2n_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_2n_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_2n_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_2n_fsm.cc
@@ -869,7 +869,6 @@ done:
 
 uint32_t SG_2N::su_fault_su_oper(AVD_SU *su) {
        AVD_SU *a_su;
-       bool flag;
        AVD_AVND *su_node_ptr = NULL;
        uint32_t rc = NCSCC_RC_FAILURE;
        SaAmfHAStateT su_ha_state, a_su_ha_state;
@@ -905,8 +904,7 @@ uint32_t SG_2N::su_fault_su_oper(AVD_SU 
                        if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                        } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        }
@@ -2008,8 +2006,7 @@ uint32_t SG_2N::susi_success_su_oper(AVD
                if ((su->saAmfSUAdminState == SA_AMF_ADMIN_SHUTTING_DOWN) && 
((all_quiesced(su) || all_unassigned(su)))) {
                        su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                       if (flag == true) {
+                       if (su_node_ptr->is_node_lock() == true) {
                                node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                        }
                }
@@ -2191,8 +2188,7 @@ uint32_t SG_2N::susi_success_su_oper(AVD
                        if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                        } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        } else if (su->su_switch == AVSV_SI_TOGGLE_SWITCH) {
@@ -2576,7 +2572,6 @@ uint32_t SG_2N::susi_failed(AVD_CL_CB *c
                AVSV_SUSI_ACT act, SaAmfHAStateT state) {
        AVD_SU_SI_REL *s_susi, *o_susi, *l_susi;
        AVD_SU *a_su;
-       bool flag;
        AVD_AVND *su_node_ptr = NULL;
        uint32_t rc = NCSCC_RC_FAILURE;
 
@@ -2655,8 +2650,7 @@ uint32_t SG_2N::susi_failed(AVD_CL_CB *c
                        if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                        } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        }
@@ -2867,7 +2861,6 @@ uint32_t SG_2N::realign(AVD_CL_CB *cb, A
 void SG_2N::node_fail_su_oper(AVD_SU *su) {
        AVD_SU_SI_REL *a_susi, *s_susi, *s_susi_temp;
        AVD_SU *o_su;
-       bool flag;
        AVD_AVND *su_node_ptr = NULL;
        AVD_CL_CB *cb = avd_cb;
 
@@ -2928,8 +2921,7 @@ void SG_2N::node_fail_su_oper(AVD_SU *su
                        if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                        } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        } else {
@@ -2976,8 +2968,7 @@ void SG_2N::node_fail_su_oper(AVD_SU *su
                                        avd_sg_su_oper_list_add(cb, a_susi->su, 
false);
                                        m_AVD_SET_SG_FSM(cb, (su->sg_of_su), 
AVD_SG_FSM_SG_REALIGN);
                                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                       if (flag == true) {
+                                       if (su_node_ptr->is_node_lock() == 
true) {
                                                
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                        }
                                        avd_sg_su_oper_list_add(cb, a_susi->su, 
false);
diff --git a/osaf/services/saf/amf/amfd/sg_nored_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_nored_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_nored_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_nored_fsm.cc
@@ -178,8 +178,7 @@ uint32_t SG_NORED::su_fault(AVD_CL_CB *c
                                        if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                                
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                        } else if 
(su_node_ptr->saAmfNodeAdminState == SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                               
m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                               if (flag == true) {
+                                               if (su_node_ptr->is_node_lock() 
== true) {
                                                        
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                                }
                                        }
@@ -217,8 +216,7 @@ uint32_t SG_NORED::su_fault(AVD_CL_CB *c
                                if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                        
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                       if (flag == true) {
+                                       if (su_node_ptr->is_node_lock() == 
true) {
                                                
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                        }
                                }
@@ -336,7 +334,6 @@ uint32_t SG_NORED::su_insvc(AVD_CL_CB *c
 uint32_t SG_NORED::susi_success(AVD_CL_CB *cb, AVD_SU *su, AVD_SU_SI_REL *susi,
                                   AVSV_SUSI_ACT act, SaAmfHAStateT state) {
        AVD_SI *l_si;
-       bool flag;
        AVD_AVND *su_node_ptr = NULL;
 
        TRACE_ENTER2("%u", su->sg_of_su->sg_fsm_state);
@@ -408,8 +405,7 @@ uint32_t SG_NORED::susi_success(AVD_CL_C
                        } else if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                        } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        }
@@ -492,8 +488,7 @@ uint32_t SG_NORED::susi_success(AVD_CL_C
                        if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                        } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        }
@@ -616,7 +611,6 @@ uint32_t SG_NORED::susi_success(AVD_CL_C
 
 uint32_t SG_NORED::susi_failed(AVD_CL_CB *cb, AVD_SU *su, AVD_SU_SI_REL *susi,
                                  AVSV_SUSI_ACT act, SaAmfHAStateT state) {
-       bool flag;
        AVD_AVND *su_node_ptr = NULL;
 
        TRACE_ENTER2("%u", su->sg_of_su->sg_fsm_state);
@@ -652,8 +646,7 @@ uint32_t SG_NORED::susi_failed(AVD_CL_CB
                                su->list_of_susi->state = SA_AMF_HA_QUIESCED;
                                m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(cb, 
(su->list_of_susi), AVSV_CKPT_AVD_SI_ASS);
                                avd_gen_su_ha_state_changed_ntf(cb, 
su->list_of_susi);
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        }
@@ -685,8 +678,7 @@ uint32_t SG_NORED::susi_failed(AVD_CL_CB
                                su->list_of_susi->state = SA_AMF_HA_QUIESCED;
                                m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(cb, 
(su->list_of_susi), AVSV_CKPT_AVD_SI_ASS);
                                avd_gen_su_ha_state_changed_ntf(cb, 
su->list_of_susi);
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        }
@@ -785,7 +777,6 @@ uint32_t SG_NORED::realign(AVD_CL_CB *cb
 
 void SG_NORED::node_fail(AVD_CL_CB *cb, AVD_SU *su) {
 
-       bool flag;
        AVD_SI *l_si;
        SaAmfHAStateT old_state;
        AVD_AVND *su_node_ptr = NULL;
@@ -844,8 +835,7 @@ void SG_NORED::node_fail(AVD_CL_CB *cb, 
                                su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                        } else if ((su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) &&
                                   (old_state == SA_AMF_HA_QUIESCING)) {
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        }
@@ -886,8 +876,7 @@ void SG_NORED::node_fail(AVD_CL_CB *cb, 
                                su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                        } else if ((su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) &&
                                   (old_state == SA_AMF_HA_QUIESCING)) {
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        }
diff --git a/osaf/services/saf/amf/amfd/sg_npm_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_npm_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_npm_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_npm_fsm.cc
@@ -953,7 +953,6 @@ uint32_t avd_sg_npm_siswitch_func(AVD_CL
 
 static uint32_t avd_sg_npm_su_fault_su_oper(AVD_CL_CB *cb, AVD_SU *su)
 {
-       bool flag;
        AVD_AVND *su_node_ptr = NULL;
 
        if (su->sg_of_su->su_oper_list.su == su) {
@@ -972,8 +971,7 @@ static uint32_t avd_sg_npm_su_fault_su_o
                        if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                        } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        }
@@ -1228,7 +1226,7 @@ static uint32_t avd_sg_npm_su_fault_si_o
 
 static uint32_t avd_sg_npm_su_fault_sg_relgn(AVD_CL_CB *cb, AVD_SU *su)
 {
-       bool l_flag = false, flag = false;
+       bool l_flag = false;
        AVD_AVND *su_node_ptr = NULL;
 
        if (su->sg_of_su->admin_si != AVD_SI_NULL) {
@@ -1292,8 +1290,7 @@ static uint32_t avd_sg_npm_su_fault_sg_r
                                if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                        
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                       if (flag == true) {
+                                       if (su_node_ptr->is_node_lock() == 
true) {
                                                
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                        }
                                }
@@ -1661,8 +1658,7 @@ static uint32_t avd_sg_npm_susi_sucss_sg
                                if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                        
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                       if (flag == true) {
+                                       if (su_node_ptr->is_node_lock() == 
true) {
                                                
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                        }
                                }
@@ -2439,7 +2435,6 @@ static uint32_t avd_sg_npm_susi_sucss_su
        AVD_SU_SI_REL *tmp_susi;
        bool susi_assgn_failed = false;
        
-       bool flag;
        AVD_AVND *su_node_ptr = NULL;
 
         TRACE_ENTER();
@@ -2521,8 +2516,7 @@ static uint32_t avd_sg_npm_susi_sucss_su
                                if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                        
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                       if (flag == true) {
+                                       if (su_node_ptr->is_node_lock() == 
true) {
                                                
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                        }
                                }
@@ -2910,7 +2904,6 @@ uint32_t SG_NPM::susi_success(AVD_CL_CB 
 uint32_t SG_NPM::susi_failed(AVD_CL_CB *cb, AVD_SU *su, AVD_SU_SI_REL *susi,
                AVSV_SUSI_ACT act, SaAmfHAStateT state) {
        AVD_SU_SI_REL *o_susi;
-       bool flag;
        AVD_AVND *su_node_ptr = NULL;
 
        TRACE_ENTER2("%u", su->sg_of_su->sg_fsm_state);
@@ -2951,8 +2944,7 @@ uint32_t SG_NPM::susi_failed(AVD_CL_CB *
                        if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                        } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        }
@@ -3181,7 +3173,6 @@ static void avd_sg_npm_node_fail_sg_relg
 {
        AVD_SU_SI_REL *l_susi, *o_susi, *ot_susi;
        bool l_flag = false;
-       bool flag;
        AVD_AVND *su_node_ptr = NULL;
 
        if (su->sg_of_su->admin_si != AVD_SI_NULL) {
@@ -3543,8 +3534,7 @@ static void avd_sg_npm_node_fail_sg_relg
                                if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                        
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                       if (flag == true) {
+                                       if (su_node_ptr->is_node_lock() == 
true) {
                                                
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                        }
                                }
@@ -3634,7 +3624,6 @@ static void avd_sg_npm_node_fail_sg_relg
 static void avd_sg_npm_node_fail_su_oper(AVD_CL_CB *cb, AVD_SU *su)
 {
        AVD_SU_SI_REL *o_susi;
-       bool flag;
        AVD_AVND *su_node_ptr = NULL;
 
        TRACE_ENTER2("'%s' ", su->name.value);
@@ -3684,8 +3673,7 @@ static void avd_sg_npm_node_fail_su_oper
                if (su->saAmfSUAdminState == SA_AMF_ADMIN_SHUTTING_DOWN) {
                        su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                       if (flag == true) {
+                       if (su_node_ptr->is_node_lock() == true) {
                                node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                        }
                }
diff --git a/osaf/services/saf/amf/amfd/sg_nway_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
@@ -1613,7 +1613,7 @@ uint32_t avd_sg_nway_su_fault_sg_realign
        AVD_SU_SI_REL *curr_susi = 0;
        AVD_SG *sg = su->sg_of_su;
        AVD_SI *si = sg->admin_si;
-       bool is_su_present, flag;
+       bool is_su_present;
        uint32_t rc = NCSCC_RC_SUCCESS;
        AVD_AVND *su_node_ptr = NULL;
 
@@ -1646,8 +1646,7 @@ uint32_t avd_sg_nway_su_fault_sg_realign
                                        
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                        
su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
                                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                       if (flag == true) {
+                                       if (su_node_ptr->is_node_lock() == 
true) {
                                                
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                        }
                                }
@@ -1784,7 +1783,7 @@ done:
 uint32_t avd_sg_nway_su_fault_su_oper(AVD_CL_CB *cb, AVD_SU *su)
 {
        AVD_SU_SI_REL *curr_susi = 0;
-       bool is_all_stdby = true, flag;
+       bool is_all_stdby = true;
        uint32_t rc = NCSCC_RC_SUCCESS;
        AVD_AVND *su_node_ptr = NULL;
 
@@ -1799,8 +1798,7 @@ uint32_t avd_sg_nway_su_fault_su_oper(AV
                        if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                        } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        }
@@ -2190,7 +2188,7 @@ uint32_t avd_sg_nway_susi_succ_sg_realig
 {
        AVD_SU_SI_REL *curr_susi = 0, *curr_sisu = 0, tmp_susi;
        AVD_SG *sg = su->sg_of_su;
-       bool is_su_present, is_eng, flag;
+       bool is_su_present, is_eng;
        uint32_t rc = NCSCC_RC_SUCCESS;
        AVD_AVND *su_node_ptr = NULL;
 
@@ -2266,8 +2264,7 @@ uint32_t avd_sg_nway_susi_succ_sg_realig
                                                                
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                                        } else if 
(su_node_ptr->saAmfNodeAdminState ==
                                                                   
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                                               
m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                                               if (flag == 
true) {
+                                                               if 
(su_node_ptr->is_node_lock() == true) {
                                                                        
node_admin_state_set(su_node_ptr,
                                                                                
             SA_AMF_ADMIN_LOCKED);
                                                                }
@@ -2357,8 +2354,7 @@ uint32_t avd_sg_nway_susi_succ_sg_realig
                                                        
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                                } else if 
(su_node_ptr->saAmfNodeAdminState ==
                                                           
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                                       
m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                                       if (flag == true) {
+                                                       if 
(su_node_ptr->is_node_lock() == true) {
                                                                
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                                        }
                                                }
@@ -2459,8 +2455,7 @@ uint32_t avd_sg_nway_susi_succ_sg_realig
                if (su->saAmfSUAdminState == SA_AMF_ADMIN_SHUTTING_DOWN) {
                        su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                       if (flag == true) {
+                       if (su_node_ptr->is_node_lock() == true) {
                                node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                        }
                }
@@ -2547,7 +2542,7 @@ uint32_t avd_sg_nway_susi_succ_su_oper(A
 {
        AVD_SU_SI_REL *curr_susi = 0, *curr_sisu = 0;
        AVD_SG *sg = su->sg_of_su;
-       bool is_eng = false, flag;
+       bool is_eng = false;
        uint32_t rc = NCSCC_RC_SUCCESS;
        AVD_AVND *su_node_ptr = NULL;
        SaAmfHAStateT hastate = SA_AMF_HA_QUIESCED;
@@ -2607,8 +2602,7 @@ uint32_t avd_sg_nway_susi_succ_su_oper(A
                                if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                        
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                       if (flag == true) {
+                                       if (su_node_ptr->is_node_lock() == 
true) {
                                                
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                        }
                                }
@@ -2646,8 +2640,7 @@ uint32_t avd_sg_nway_susi_succ_su_oper(A
                        if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                        } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        }
@@ -3087,7 +3080,7 @@ void avd_sg_nway_node_fail_su_oper(AVD_C
 {
        AVD_SU_SI_REL *curr_susi = 0, *curr_sisu = 0;
        AVD_SG *sg = su->sg_of_su;
-       bool is_su_present, flag;
+       bool is_su_present;
        uint32_t rc = NCSCC_RC_SUCCESS;
        AVD_AVND *su_node_ptr = NULL;
 
@@ -3102,8 +3095,7 @@ void avd_sg_nway_node_fail_su_oper(AVD_C
                if (su->saAmfSUAdminState == SA_AMF_ADMIN_SHUTTING_DOWN) {
                        su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                       if (flag == true) {
+                       if (su_node_ptr->is_node_lock() == true) {
                                node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                        }
                }
@@ -3465,7 +3457,7 @@ void avd_sg_nway_node_fail_sg_admin(AVD_
 void avd_sg_nway_node_fail_sg_realign(AVD_CL_CB *cb, AVD_SU *su)
 {
        AVD_SG *sg = su->sg_of_su;
-       bool is_su_present, flag;
+       bool is_su_present;
        AVD_AVND *su_node_ptr = NULL;
 
        TRACE_ENTER2("SU '%s'",su->name.value);
@@ -3484,8 +3476,7 @@ void avd_sg_nway_node_fail_sg_realign(AV
                        if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                        } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        }
diff --git a/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc
@@ -363,8 +363,7 @@ uint32_t SG_NACV::su_fault(AVD_CL_CB *cb
                                if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                        
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                       if (flag == true) {
+                                       if (su_node_ptr->is_node_lock() == 
true) {
                                                
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                        }
                                }
@@ -395,8 +394,7 @@ uint32_t SG_NACV::su_fault(AVD_CL_CB *cb
                                if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                        
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                       if (flag == true) {
+                                       if (su_node_ptr->is_node_lock() == 
true) {
                                                
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                        }
                                }
@@ -677,8 +675,7 @@ uint32_t SG_NACV::susi_success(AVD_CL_CB
                                } else if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                        
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                       if (flag == true) {
+                                       if (su_node_ptr->is_node_lock() == 
true) {
                                                
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                        }
                                }
@@ -871,8 +868,7 @@ uint32_t SG_NACV::susi_success(AVD_CL_CB
                                        if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                                
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                        } else if 
(su_node_ptr->saAmfNodeAdminState == SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                               
m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                               if (flag == true) {
+                                               if (su_node_ptr->is_node_lock() 
== true) {
                                                        
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                                }
                                        }
@@ -1008,7 +1004,6 @@ uint32_t SG_NACV::susi_success(AVD_CL_CB
 
 uint32_t SG_NACV::susi_failed(AVD_CL_CB *cb, AVD_SU *su, AVD_SU_SI_REL *susi,
                                    AVSV_SUSI_ACT act, SaAmfHAStateT state) {
-       bool flag;
        AVD_AVND *su_node_ptr = NULL;
 
        TRACE_ENTER2("%u", su->sg_of_su->sg_fsm_state);
@@ -1070,8 +1065,7 @@ uint32_t SG_NACV::susi_failed(AVD_CL_CB 
                                } else if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                        
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                       m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                       if (flag == true) {
+                                       if (su_node_ptr->is_node_lock() == 
true) {
                                                
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                        }
                                }
@@ -1141,8 +1135,7 @@ uint32_t SG_NACV::susi_failed(AVD_CL_CB 
                                        if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                                
su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                                        } else if 
(su_node_ptr->saAmfNodeAdminState == SA_AMF_ADMIN_SHUTTING_DOWN) {
-                                               
m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                                               if (flag == true) {
+                                               if (su_node_ptr->is_node_lock() 
== true) {
                                                        
node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED);
                                                }
                                        }
@@ -1341,8 +1334,7 @@ void SG_NACV::node_fail(AVD_CL_CB *cb, A
                        if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                        } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        }
@@ -1394,8 +1386,7 @@ void SG_NACV::node_fail(AVD_CL_CB *cb, A
                        if (su->saAmfSUAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
                                su->set_admin_state(SA_AMF_ADMIN_LOCKED);
                        } else if (su_node_ptr->saAmfNodeAdminState == 
SA_AMF_ADMIN_SHUTTING_DOWN) {
-                               m_AVD_IS_NODE_LOCK((su_node_ptr), flag);
-                               if (flag == true) {
+                               if (su_node_ptr->is_node_lock() == true) {
                                        node_admin_state_set(su_node_ptr, 
SA_AMF_ADMIN_LOCKED);
                                }
                        }
diff --git a/osaf/services/saf/amf/amfd/sgproc.cc 
b/osaf/services/saf/amf/amfd/sgproc.cc
--- a/osaf/services/saf/amf/amfd/sgproc.cc
+++ b/osaf/services/saf/amf/amfd/sgproc.cc
@@ -338,8 +338,7 @@ void process_su_si_response_for_ng(AVD_S
        /* Node may be in SHUTTING_DOWN state because of shutdown operation
           on nodegroup. Check if node can be transitioned to LOCKED sate.*/ 
        if (node->saAmfNodeAdminState == SA_AMF_ADMIN_SHUTTING_DOWN) {
-               m_AVD_IS_NODE_LOCK(node, flag);
-               if (flag == true)
+               if (node->is_node_lock() == true)
                        node_admin_state_set(node, SA_AMF_ADMIN_LOCKED);
        }
        /*In 2N model, if both active or standby SUs were part of nodegroup then
@@ -575,8 +574,7 @@ static void perform_nodeswitchover_recov
        bool node_reboot = true;
        TRACE_ENTER2("'%s'", node->name.value);
 
-       AVD_SU *su = node->list_of_su;
-       for (;su != NULL; su = su->avnd_list_su_next) {
+       for (const auto& su : node->list_of_su) {
                su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
 
                if (su->list_of_susi == NULL)
@@ -623,7 +621,7 @@ void avd_su_oper_state_evh(AVD_CL_CB *cb
 {
        AVD_DND_MSG *n2d_msg = evt->info.avnd_msg;
        AVD_AVND *node;
-       AVD_SU *su, *i_su;
+       AVD_SU *su;
        SaAmfReadinessStateT old_state;
        bool node_reboot_req = true;
 
@@ -714,10 +712,8 @@ void avd_su_oper_state_evh(AVD_CL_CB *cb
                                 */
                                avd_node_oper_state_set(node, 
SA_AMF_OPERATIONAL_DISABLED);
                                node->recvr_fail_sw = true;
-                               i_su = node->list_of_su;
-                               while (i_su != NULL) {
+                               for (const auto& su : node->list_of_su) {
                                        
su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
-                                       i_su = i_su->avnd_list_su_next;
                                }
                        }       /* if 
(n2d_msg->msg_info.n2d_opr_state.node_oper_state == 
SA_AMF_OPERATIONAL_DISABLED) */
                } /* if(cb->init_state == AVD_INIT_DONE) */
@@ -1413,12 +1409,10 @@ void avd_su_si_assign_evh(AVD_CL_CB *cb,
 
                /* We are checking only application components as on payload 
all ncs comp are in no_red model.
                   We are doing the same thing for controller also. */
-               temp_su = node->list_of_su;
-               while (temp_su) {
+               for (const auto& temp_su : node->list_of_su) {
                        if (NULL != temp_su->list_of_susi) {
                                all_su_unassigned = false;
                        }
-                       temp_su = temp_su->avnd_list_su_next;
                }
                if (true == all_su_unassigned) {
                        /* All app su got unassigned, Safe to reboot the blade 
now. */
@@ -1457,8 +1451,6 @@ void avd_su_si_assign_evh(AVD_CL_CB *cb,
 
 void avd_sg_app_node_su_inst_func(AVD_CL_CB *cb, AVD_AVND *avnd)
 {
-       AVD_SU *i_su;
-
        TRACE_ENTER2("'%s'", avnd->name.value);
 
        if (avnd->saAmfNodeAdminState == SA_AMF_ADMIN_LOCKED_INSTANTIATION) {
@@ -1467,8 +1459,8 @@ void avd_sg_app_node_su_inst_func(AVD_CL
        }
 
        if (cb->init_state == AVD_INIT_DONE) {
-               i_su = avnd->list_of_su;
-               while (i_su != NULL) {
+               for (const auto& i_su : avnd->list_of_su) {
+
                        if ((i_su->term_state == false) &&
                            (i_su->saAmfSUPresenceState == 
SA_AMF_PRESENCE_UNINSTANTIATED) &&
                            (i_su->saAmfSUAdminState != 
SA_AMF_ADMIN_LOCKED_INSTANTIATION) && 
@@ -1494,20 +1486,17 @@ void avd_sg_app_node_su_inst_func(AVD_CL
                                }
                        }
 
-                       i_su = i_su->avnd_list_su_next;
                }
                node_reset_su_try_inst_counter(avnd);
 
        } else if (cb->init_state == AVD_APP_STATE) {
-               i_su = avnd->list_of_su;
-               while (i_su != NULL) {
+               for (const auto& i_su : avnd->list_of_su) {
                        if ((i_su->term_state == false) &&
                            (i_su->saAmfSUPresenceState == 
SA_AMF_PRESENCE_UNINSTANTIATED)) {
                                /* Look at the SG and do the instantiations. */
                                avd_sg_app_su_inst_func(cb, i_su->sg_of_su);
                        }
 
-                       i_su = i_su->avnd_list_su_next;
                }
        }
 
@@ -1825,8 +1814,6 @@ done:
 
 void avd_node_down_mw_susi_failover(AVD_CL_CB *cb, AVD_AVND *avnd)
 {
-       AVD_SU *i_su;
-
        TRACE_ENTER2("'%s'", avnd->name.value);
 
        /* run through all the MW SUs, make all of them O.O.S. Set
@@ -1835,9 +1822,9 @@ void avd_node_down_mw_susi_failover(AVD_
         * disable and uninstantiated.  All the functionality for MW SUs is 
done in
         * one loop as more than one MW SU per SG in one node is not supported.
         */
-       i_su = avnd->list_of_ncs_su;
-       osafassert(i_su != 0);
-       while (i_su != NULL) {
+       osafassert(avnd->list_of_ncs_su.empty() != true);
+
+       for (const auto& i_su : avnd->list_of_ncs_su) {
                i_su->set_oper_state(SA_AMF_OPERATIONAL_DISABLED);
                i_su->set_pres_state(SA_AMF_PRESENCE_UNINSTANTIATED);
                i_su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
@@ -1864,9 +1851,7 @@ void avd_node_down_mw_susi_failover(AVD_
                /* Free all the SU SI assignments*/ 
                i_su->delete_all_susis();
 
-               i_su = i_su->avnd_list_su_next;
-
-       }                       /* while (i_su != AVD_SU_NULL) */
+       }               /* for (const auto& i_su : avnd->list_of_su) */
 
        /* send pending callback for this node if any */
        if (avnd->admin_node_pend_cbk.invocation != 0) {
@@ -1892,20 +1877,16 @@ void avd_node_down_mw_susi_failover(AVD_
  **/
 void avd_node_down_appl_susi_failover(AVD_CL_CB *cb, AVD_AVND *avnd)
 {
-       AVD_SU *i_su;
-
        TRACE_ENTER2("'%s'", avnd->name.value);
 
        /* Run through the list of application SUs make all of them O.O.S. 
         */
-       i_su = avnd->list_of_su;
-       while (i_su != NULL) {
+       for (const auto& i_su : avnd->list_of_su) {
                i_su->set_oper_state(SA_AMF_OPERATIONAL_DISABLED);
                i_su->set_pres_state(SA_AMF_PRESENCE_UNINSTANTIATED);
                i_su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
                i_su->complete_admin_op(SA_AIS_ERR_TIMEOUT);
                i_su->disable_comps(SA_AIS_ERR_TIMEOUT);
-               i_su = i_su->avnd_list_su_next;
        }
 
        /* If the AvD is in AVD_APP_STATE run through all the application SUs 
and 
@@ -1913,8 +1894,7 @@ void avd_node_down_appl_susi_failover(AV
         */
 
        if (cb->init_state == AVD_APP_STATE) {
-               i_su = avnd->list_of_su;
-               while (i_su != NULL) {
+               for (const auto& i_su : avnd->list_of_su) {
 
                        /* Unlike active, quiesced and standby HA states, 
assignment counters
                           in quiescing HA state are updated when AMFD receives 
assignment 
@@ -1963,17 +1943,15 @@ void avd_node_down_appl_susi_failover(AV
                         */
                        avd_sg_app_su_inst_func(cb, i_su->sg_of_su);
 
-                       i_su = i_su->avnd_list_su_next;
-
-               }               /* while (i_su != AVD_SU_NULL) */
+               }               /* for (const auto& i_su : avnd->list_of_su) */
 
        }
 
        /* If this node-failover/nodereboot occurs dueing nodegroup operation 
then check 
           if this leads to completion of operation and try to reply to imm.*/
-       if ((avnd->list_of_su != NULL) && (avnd->admin_ng != NULL)) {
+       if ((avnd->list_of_su.empty() != true) && (avnd->admin_ng != NULL)) {
                avnd->su_cnt_admin_oper = 0;
-               process_su_si_response_for_ng(avnd->list_of_su, SA_AIS_OK);
+               process_su_si_response_for_ng(avnd->list_of_su.front(), 
SA_AIS_OK);
        }
        TRACE_LEAVE();
 }
diff --git a/osaf/services/saf/amf/amfd/su.cc b/osaf/services/saf/amf/amfd/su.cc
--- a/osaf/services/saf/amf/amfd/su.cc
+++ b/osaf/services/saf/amf/amfd/su.cc
@@ -56,7 +56,6 @@ void AVD_SU::initialize() {
        list_of_susi = NULL;
        list_of_comp = NULL;
        sg_list_su_next = NULL;
-       avnd_list_su_next = NULL;
        su_type = NULL;
        su_list_su_type_next = NULL; 
        name.length = 0;
@@ -518,14 +517,14 @@ static AVD_AVND *map_su_to_node(AVD_SU *
                osafassert(node);
 
                if (su->sg_of_su->sg_ncs_spec == true) {
-                       for (su_temp = node->list_of_ncs_su; su_temp != NULL; 
su_temp = su_temp->avnd_list_su_next) {
+                       for (const auto& su_temp : node->list_of_ncs_su) {
                                if (su_temp->sg_of_su == su->sg_of_su)
                                        break;
                        }
                }
 
                if (su->sg_of_su->sg_ncs_spec == false) {
-                       for (su_temp = node->list_of_su; su_temp != NULL; 
su_temp = su_temp->avnd_list_su_next) {
+                       for (const auto& su_temp : node->list_of_su) {
                                if (su_temp->sg_of_su == su->sg_of_su)
                                        break;
                        }
diff --git a/osaf/services/saf/amf/amfd/util.cc 
b/osaf/services/saf/amf/amfd/util.cc
--- a/osaf/services/saf/amf/amfd/util.cc
+++ b/osaf/services/saf/amf/amfd/util.cc
@@ -516,11 +516,11 @@ uint32_t avd_snd_su_reg_msg(AVD_CL_CB *c
        su_msg->msg_info.d2n_reg_su.msg_on_fover = fail_over;
 
        // Add osaf SUs
-       for (su = avnd->list_of_ncs_su; su != NULL; su = su->avnd_list_su_next)
+       for (const auto& su : avnd->list_of_ncs_su)
                reg_su_msg_init_su_info(su_msg, su);
 
        // Add app SUs
-       for (su = avnd->list_of_su; su != NULL; su = su->avnd_list_su_next)
+       for (const auto& su : avnd->list_of_su)
                reg_su_msg_init_su_info(su_msg, su);
 
        // Add external SUs but only if node belongs to ACT controller

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to