osaf/services/saf/amf/amfd/include/proc.h | 5 ----- osaf/services/saf/amf/amfd/include/sg.h | 17 ++++++++++++++--- osaf/services/saf/amf/amfd/sg_2n_fsm.cc | 25 +------------------------ osaf/services/saf/amf/amfd/sg_nored_fsm.cc | 25 +------------------------ osaf/services/saf/amf/amfd/sg_npm_fsm.cc | 25 +------------------------ osaf/services/saf/amf/amfd/sg_nway_fsm.cc | 22 +--------------------- osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc | 25 +------------------------ 7 files changed, 19 insertions(+), 125 deletions(-)
diff --git a/osaf/services/saf/amf/amfd/include/proc.h b/osaf/services/saf/amf/amfd/include/proc.h --- a/osaf/services/saf/amf/amfd/include/proc.h +++ b/osaf/services/saf/amf/amfd/include/proc.h @@ -57,7 +57,6 @@ uint32_t avd_sg_2n_susi_sucss_func(AVD_C AVSV_SUSI_ACT act, SaAmfHAStateT state); uint32_t avd_sg_2n_susi_fail_func(AVD_CL_CB *cb, AVD_SU *su, AVD_SU_SI_REL *susi, AVSV_SUSI_ACT act, SaAmfHAStateT state); -uint32_t avd_sg_2n_su_admin_fail(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd); void avd_sg_2n_init(AVD_SG *sg); /* The following are for N-Way redundancy model */ @@ -66,7 +65,6 @@ uint32_t avd_sg_nway_susi_sucss_func(AVD AVSV_SUSI_ACT act, SaAmfHAStateT state); uint32_t avd_sg_nway_susi_fail_func(AVD_CL_CB *cb, AVD_SU *su, AVD_SU_SI_REL *susi, AVSV_SUSI_ACT act, SaAmfHAStateT state); -uint32_t avd_sg_nway_su_admin_fail(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd); void avd_sg_nway_init(AVD_SG *sg); /* The following are for N+M redundancy model */ @@ -74,7 +72,6 @@ uint32_t avd_sg_npm_susi_sucss_func(AVD_ AVSV_SUSI_ACT act, SaAmfHAStateT state); uint32_t avd_sg_npm_susi_fail_func(AVD_CL_CB *cb, AVD_SU *su, AVD_SU_SI_REL *susi, AVSV_SUSI_ACT act, SaAmfHAStateT state); -uint32_t avd_sg_npm_su_admin_fail(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd); void avd_sg_npm_init(AVD_SG *sg); /* The following are for No redundancy model */ @@ -82,7 +79,6 @@ uint32_t avd_sg_nored_susi_sucss_func(AV AVSV_SUSI_ACT act, SaAmfHAStateT state); uint32_t avd_sg_nored_susi_fail_func(AVD_CL_CB *cb, AVD_SU *su, AVD_SU_SI_REL *susi, AVSV_SUSI_ACT act, SaAmfHAStateT state); -uint32_t avd_sg_nored_su_admin_fail(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd); void avd_sg_nored_init(AVD_SG *sg); /* The following are for N-way Active redundancy model */ @@ -91,7 +87,6 @@ uint32_t avd_sg_nacvred_susi_sucss_func( AVSV_SUSI_ACT act, SaAmfHAStateT state); uint32_t avd_sg_nacvred_susi_fail_func(AVD_CL_CB *cb, AVD_SU *su, AVD_SU_SI_REL *susi, AVSV_SUSI_ACT act, SaAmfHAStateT state); -uint32_t avd_sg_nacvred_su_admin_fail(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd); void avd_sg_nacv_init(AVD_SG *sg); void avd_node_up_evh(AVD_CL_CB *cb, struct avd_evt_tag *evt); diff --git a/osaf/services/saf/amf/amfd/include/sg.h b/osaf/services/saf/amf/amfd/include/sg.h --- a/osaf/services/saf/amf/amfd/include/sg.h +++ b/osaf/services/saf/amf/amfd/include/sg.h @@ -278,9 +278,15 @@ public: */ virtual uint32_t su_fault(AVD_CL_CB *cb, AVD_SU *su) = 0; - // Handle SU admin op LOCK/SHUTDOWN - uint32_t (*su_admin_down)(AVD_CL_CB *cb, AVD_SU *su, - struct avd_avnd_tag *avnd); + /** + * Handle SU admin op LOCK/SHUTDOWN + * @param cb + * @param su + * @param avnd + * @return + */ + virtual uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, + struct avd_avnd_tag *avnd) = 0; // Handle successful SUSI assignment uint32_t (*susi_success)(AVD_CL_CB *cb, AVD_SU *su, @@ -312,6 +318,7 @@ public: uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg); uint32_t su_insvc(AVD_CL_CB *cb, AVD_SU *su); uint32_t su_fault(AVD_CL_CB *cb, AVD_SU *su); + uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, struct avd_avnd_tag *avnd); }; /** @@ -327,6 +334,7 @@ public: uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg); uint32_t su_insvc(AVD_CL_CB *cb, AVD_SU *su); uint32_t su_fault(AVD_CL_CB *cb, AVD_SU *su); + uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, struct avd_avnd_tag *avnd); }; /** @@ -342,6 +350,7 @@ public: uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg); uint32_t su_insvc(AVD_CL_CB *cb, AVD_SU *su); uint32_t su_fault(AVD_CL_CB *cb, AVD_SU *su); + uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, struct avd_avnd_tag *avnd); }; /** @@ -357,6 +366,7 @@ public: uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg); uint32_t su_insvc(AVD_CL_CB *cb, AVD_SU *su); uint32_t su_fault(AVD_CL_CB *cb, AVD_SU *su); + uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, struct avd_avnd_tag *avnd); }; /** @@ -372,6 +382,7 @@ public: uint32_t sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg); uint32_t su_insvc(AVD_CL_CB *cb, AVD_SU *su); uint32_t su_fault(AVD_CL_CB *cb, AVD_SU *su); + uint32_t su_admin_down(AVD_CL_CB *cb, AVD_SU *su, struct avd_avnd_tag *avnd); }; 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 @@ -3568,29 +3568,7 @@ done: TRACE_LEAVE(); } -/***************************************************************************** - * Function: avd_sg_2n_su_admin_fail - * - * Purpose: This function is called when SU become OOS because of the - * LOCK or shutdown of the SU or node.The functionality will be as described in - * the SG design FSM. - * - * Input: cb - the AVD control block - * su - The SU that has failed because of the admin operation. - * avnd - The AvND structure of the node that is being operated upon. - * - * - * Returns: NCSCC_RC_SUCCESS/NCSCC_RC_FAILURE. - * - * NOTES: This is a 2N redundancy model specific function. The avnd pointer - * value is valid only if this is a SU operation being done because of the node - * admin change. - * - * - **************************************************************************/ - -uint32_t avd_sg_2n_su_admin_fail(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd) -{ +uint32_t SG_2N::su_admin_down(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd) { uint32_t rc = NCSCC_RC_FAILURE; TRACE_ENTER2("'%s'", su->name.value); @@ -4024,7 +4002,6 @@ AVD_SU *get_other_su_from_oper_list(AVD_ */ void avd_sg_2n_init(AVD_SG *sg) { - sg->su_admin_down = avd_sg_2n_su_admin_fail; sg->susi_success = avd_sg_2n_susi_sucss_func; sg->susi_failed = avd_sg_2n_susi_fail_func; } 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 @@ -1060,29 +1060,7 @@ void SG_NORED::node_fail(AVD_CL_CB *cb, TRACE_LEAVE(); } -/***************************************************************************** - * Function: avd_sg_nored_su_admin_fail - * - * Purpose: This function is called when SU become OOS because of the - * LOCK or shutdown of the SU or node.The functionality will be as described in - * the SG design FSM. - * - * Input: cb - the AVD control block - * su - The SU that has failed because of the admin operation. - * avnd - The AvND structure of the node that is being operated upon. - * - * - * Returns: NCSCC_RC_SUCCESS/NCSCC_RC_FAILURE. - * - * NOTES: This is a No redundancy model specific function. The avnd pointer - * value is valid only if this is a SU operation being done because of the node - * admin change. - * - * - **************************************************************************/ - -uint32_t avd_sg_nored_su_admin_fail(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd) -{ +uint32_t SG_NORED::su_admin_down(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd) { TRACE_ENTER2("%u", su->sg_of_su->sg_fsm_state); if ((cb->init_state != AVD_APP_STATE) && (su->sg_of_su->sg_ncs_spec == false)) { @@ -1301,7 +1279,6 @@ uint32_t SG_NORED::sg_admin_down(AVD_CL_ */ void avd_sg_nored_init(AVD_SG *sg) { - sg->su_admin_down = avd_sg_nored_su_admin_fail; sg->susi_success = avd_sg_nored_susi_sucss_func; sg->susi_failed = avd_sg_nored_susi_fail_func; } 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 @@ -4194,29 +4194,7 @@ void SG_NPM::node_fail(AVD_CL_CB *cb, AV return; } -/***************************************************************************** - * Function: avd_sg_npm_su_admin_fail - * - * Purpose: This function is called when SU become OOS because of the - * LOCK or shutdown of the SU or node.The functionality will be as described in - * the SG design FSM. - * - * Input: cb - the AVD control block - * su - The SU that has failed because of the admin operation. - * avnd - The AvND structure of the node that is being operated upon. - * - * - * Returns: NCSCC_RC_SUCCESS/NCSCC_RC_FAILURE. - * - * NOTES: This is a N+M redundancy model specific function. The avnd pointer - * value is valid only if this is a SU operation being done because of the node - * admin change. - * - * - **************************************************************************/ - -uint32_t avd_sg_npm_su_admin_fail(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd) -{ +uint32_t SG_NPM::su_admin_down(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd) { uint32_t rc; TRACE_ENTER2("%u", su->sg_of_su->sg_fsm_state); @@ -4481,7 +4459,6 @@ uint32_t SG_NPM::sg_admin_down(AVD_CL_CB */ void avd_sg_npm_init(AVD_SG *sg) { - sg->su_admin_down = avd_sg_npm_su_admin_fail; sg->susi_success = avd_sg_npm_susi_sucss_func; sg->susi_failed = avd_sg_npm_susi_fail_func; } 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 @@ -574,26 +574,7 @@ done: TRACE_LEAVE(); } -/***************************************************************************** - * Function: avd_sg_nway_su_admin_fail - * - * Purpose: This function is called when SU become OOS because of the - * LOCK or shutdown of the SU or node.The functionality will be as described in - * the SG design FSM. - * - * Input: cb - the AVD control block - * su - The SU that has failed because of the admin operation. - * avnd - The AvND structure of the node that is being operated upon. - * - * Returns: NCSCC_RC_SUCCESS/NCSCC_RC_FAILURE. - * - * Notes: This is a N-Way redundancy model specific function. The avnd pointer - * value is valid only if this is a SU operation being done because of the node - * admin change. - * - **************************************************************************/ -uint32_t avd_sg_nway_su_admin_fail(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd) -{ +uint32_t SG_NWAY::su_admin_down(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd) { AVD_SU_SI_REL *curr_susi = 0; SaAmfHAStateT state; bool is_all_stdby = true; @@ -3576,7 +3557,6 @@ void avd_sg_nway_node_fail_sg_realign(AV */ void avd_sg_nway_init(AVD_SG *sg) { - sg->su_admin_down = avd_sg_nway_su_admin_fail; sg->susi_success = avd_sg_nway_susi_sucss_func; sg->susi_failed = avd_sg_nway_susi_fail_func; } 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 @@ -1557,29 +1557,7 @@ void SG_NACV::node_fail(AVD_CL_CB *cb, A return; } -/***************************************************************************** - * Function: avd_sg_nacvred_su_admin_fail - * - * Purpose: This function is called when SU become OOS because of the - * LOCK or shutdown of the SU or node.The functionality will be as described in - * the SG design FSM. - * - * Input: cb - the AVD control block - * su - The SU that has failed because of the admin operation. - * avnd - The AvND structure of the node that is being operated upon. - * - * - * Returns: NCSCC_RC_SUCCESS/NCSCC_RC_FAILURE. - * - * NOTES: This is a N-way active redundancy model specific function. The avnd pointer - * value is valid only if this is a SU operation being done because of the node - * admin change. - * - * - **************************************************************************/ - -uint32_t avd_sg_nacvred_su_admin_fail(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd) -{ +uint32_t SG_NACV::su_admin_down(AVD_CL_CB *cb, AVD_SU *su, AVD_AVND *avnd) { TRACE_ENTER2("%u", su->sg_of_su->sg_fsm_state); if ((cb->init_state != AVD_APP_STATE) && (su->sg_of_su->sg_ncs_spec == false)) { @@ -2024,7 +2002,6 @@ done: */ void avd_sg_nacv_init(AVD_SG *sg) { - sg->su_admin_down = avd_sg_nacvred_su_admin_fail; sg->susi_success = avd_sg_nacvred_susi_sucss_func; sg->susi_failed = avd_sg_nacvred_susi_fail_func; } ------------------------------------------------------------------------------ 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