osaf/services/saf/amf/amfd/include/si.h | 2 + osaf/services/saf/amf/amfd/si.cc | 46 +++++++++++++++----------------- 2 files changed, 24 insertions(+), 24 deletions(-)
Make avd_si_adjust_si_assignments a class member function of AVD_SI diff --git a/osaf/services/saf/amf/amfd/include/si.h b/osaf/services/saf/amf/amfd/include/si.h --- a/osaf/services/saf/amf/amfd/include/si.h +++ b/osaf/services/saf/amf/amfd/include/si.h @@ -116,6 +116,8 @@ public: void dec_curr_stdby_ass(); void inc_curr_stdby_dec_act_ass(); void inc_curr_act_dec_std_ass(); + + void adjust_si_assignments(uint32_t mod_pref_assignments); private: AVD_SI(const AVD_SI&); diff --git a/osaf/services/saf/amf/amfd/si.cc b/osaf/services/saf/amf/amfd/si.cc --- a/osaf/services/saf/amf/amfd/si.cc +++ b/osaf/services/saf/amf/amfd/si.cc @@ -1004,39 +1004,37 @@ done: * @brief Readjust the SI assignments whenever PrefActiveAssignments & PrefStandbyAssignments is updated * using IMM interface * - * @param[in] SI - * * @return void */ -static void avd_si_adjust_si_assignments(AVD_SI *si, uint32_t mod_pref_assignments) +void AVD_SI::adjust_si_assignments(const uint32_t mod_pref_assignments) { AVD_SU_SI_REL *sisu, *tmp_sisu; uint32_t no_of_sisus_to_delete; uint32_t i = 0; - TRACE_ENTER2("for SI:%s ", si->name.value); + TRACE_ENTER2("for SI:%s ", name.value); - if( si->sg_of_si->sg_redundancy_model == SA_AMF_N_WAY_ACTIVE_REDUNDANCY_MODEL ) { - if( mod_pref_assignments > si->saAmfSINumCurrActiveAssignments ) { + if( sg_of_si->sg_redundancy_model == SA_AMF_N_WAY_ACTIVE_REDUNDANCY_MODEL ) { + if( mod_pref_assignments > saAmfSINumCurrActiveAssignments ) { /* SI assignment is not yet complete, choose and assign to appropriate SUs */ - if ( avd_sg_nacvred_su_chose_asgn(avd_cb, si->sg_of_si ) != NULL ) { + if ( avd_sg_nacvred_su_chose_asgn(avd_cb, sg_of_si ) != NULL ) { /* New assignments are been done in the SG. change the SG FSM state to AVD_SG_FSM_SG_REALIGN */ - m_AVD_SET_SG_FSM(avd_cb, si->sg_of_si, AVD_SG_FSM_SG_REALIGN); + m_AVD_SET_SG_FSM(avd_cb, sg_of_si, AVD_SG_FSM_SG_REALIGN); } else { /* No New assignments are been done in the SG reason might be no more inservice SUs to take new assignments or SUs are already assigned to saAmfSGMaxActiveSIsperSU capacity */ - si_update_ass_state(si); - TRACE("No New assignments are been done SI:%s",si->name.value); + si_update_ass_state(this); + TRACE("No New assignments are been done SI:%s", name.value); } } else { - no_of_sisus_to_delete = si->saAmfSINumCurrActiveAssignments - + no_of_sisus_to_delete = saAmfSINumCurrActiveAssignments - mod_pref_assignments; /* Get the sisu pointer from the si->list_of_sisu list from which no of sisus need to be deleted based on SI ranked SU */ - sisu = tmp_sisu = si->list_of_sisu; + sisu = tmp_sisu = list_of_sisu; for( i = 0; i < no_of_sisus_to_delete && NULL != tmp_sisu; i++ ) { tmp_sisu = tmp_sisu->si_next; } @@ -1054,23 +1052,23 @@ static void avd_si_adjust_si_assignments sisu = sisu->si_next; } /* Change the SG FSM to AVD_SG_FSM_SG_REALIGN SG to Stable state */ - m_AVD_SET_SG_FSM(avd_cb, si->sg_of_si, AVD_SG_FSM_SG_REALIGN); + m_AVD_SET_SG_FSM(avd_cb, sg_of_si, AVD_SG_FSM_SG_REALIGN); } } - if( si->sg_of_si->sg_redundancy_model == SA_AMF_N_WAY_REDUNDANCY_MODEL ) { - if( mod_pref_assignments > si->saAmfSINumCurrStandbyAssignments ) { + if( sg_of_si->sg_redundancy_model == SA_AMF_N_WAY_REDUNDANCY_MODEL ) { + if( mod_pref_assignments > saAmfSINumCurrStandbyAssignments ) { /* SI assignment is not yet complete, choose and assign to appropriate SUs */ - if( avd_sg_nway_si_assign(avd_cb, si->sg_of_si ) == NCSCC_RC_FAILURE ) { - LOG_ER("SI new assignmemts failed SI:%s",si->name.value); + if( avd_sg_nway_si_assign(avd_cb, sg_of_si ) == NCSCC_RC_FAILURE ) { + LOG_ER("SI new assignmemts failed SI:%s", name.value); } } else { no_of_sisus_to_delete = 0; - no_of_sisus_to_delete = si->saAmfSINumCurrStandbyAssignments - + no_of_sisus_to_delete = saAmfSINumCurrStandbyAssignments - mod_pref_assignments; /* Get the sisu pointer from the si->list_of_sisu list from which no of sisus need to be deleted based on SI ranked SU */ - sisu = tmp_sisu = si->list_of_sisu; + sisu = tmp_sisu = list_of_sisu; for(i = 0; i < no_of_sisus_to_delete && (NULL != tmp_sisu); i++) { tmp_sisu = tmp_sisu->si_next; } @@ -1088,7 +1086,7 @@ static void avd_si_adjust_si_assignments sisu = sisu->si_next; } /* Change the SG FSM to AVD_SG_FSM_SG_REALIGN */ - m_AVD_SET_SG_FSM(avd_cb, si->sg_of_si, AVD_SG_FSM_SG_REALIGN); + m_AVD_SET_SG_FSM(avd_cb, sg_of_si, AVD_SG_FSM_SG_REALIGN); } } TRACE_LEAVE(); @@ -1135,9 +1133,9 @@ static void si_ccb_apply_modify_hdlr(Ccb si->saAmfSIPrefActiveAssignments = mod_pref_assignments; } else if (mod_pref_assignments > si->saAmfSINumCurrActiveAssignments) { si->saAmfSIPrefActiveAssignments = mod_pref_assignments; - avd_si_adjust_si_assignments(si, mod_pref_assignments); + si->adjust_si_assignments(mod_pref_assignments); } else if (mod_pref_assignments < si->saAmfSINumCurrActiveAssignments) { - avd_si_adjust_si_assignments(si, mod_pref_assignments); + si->adjust_si_assignments(mod_pref_assignments); si->saAmfSIPrefActiveAssignments = mod_pref_assignments; } TRACE("Modified saAmfSIPrefActiveAssignments is '%u'", si->saAmfSIPrefActiveAssignments); @@ -1161,9 +1159,9 @@ static void si_ccb_apply_modify_hdlr(Ccb si->saAmfSIPrefStandbyAssignments = mod_pref_assignments; } else if (mod_pref_assignments > si->saAmfSINumCurrStandbyAssignments) { si->saAmfSIPrefStandbyAssignments = mod_pref_assignments; - avd_si_adjust_si_assignments(si, mod_pref_assignments); + si->adjust_si_assignments(mod_pref_assignments); } else if (mod_pref_assignments < si->saAmfSINumCurrStandbyAssignments) { - avd_si_adjust_si_assignments(si, mod_pref_assignments); + si->adjust_si_assignments(mod_pref_assignments); si->saAmfSIPrefStandbyAssignments = mod_pref_assignments; } TRACE("Modified saAmfSINumCurrStandbyAssignments is '%u'", si->saAmfSINumCurrStandbyAssignments); ------------------------------------------------------------------------------ HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions Find What Matters Most in Your Big Data with HPCC Systems Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. Leverages Graph Analysis for Fast Processing & Easy Data Exploration http://p.sf.net/sfu/hpccsystems _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel