osaf/services/saf/amf/amfnd/comp.cc | 2 +- osaf/services/saf/amf/amfnd/susm.cc | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)
When saAmfCSIDependencies is used to order CSIs, STANDBY assignment is done in reverse order than ACTIVE assignment. The code interprets the AMF B.04.01 spec to only order ACTIVE assignment, and all other assignments are done in reverse order. STANDBY assignment should be done based on rank (saAmfCSIDependencies) in the same order as ACTIVE assignment. diff --git a/osaf/services/saf/amf/amfnd/comp.cc b/osaf/services/saf/amf/amfnd/comp.cc --- a/osaf/services/saf/amf/amfnd/comp.cc +++ b/osaf/services/saf/amf/amfnd/comp.cc @@ -1608,7 +1608,7 @@ uint32_t avnd_comp_csi_assign_done(AVND_ */ if (csi) { if (all_csis_at_rank_assigned(csi->si, csi->rank)) { - uint32_t rank = (SA_AMF_HA_ACTIVE == csi->si->curr_state) ? + uint32_t rank = (SA_AMF_HA_ACTIVE == csi->si->curr_state || SA_AMF_HA_STANDBY == csi->si->curr_state) ? csi->rank + 1 : csi->rank - 1 ; if (find_unassigned_csi_at_rank(csi->si, rank) != nullptr) { diff --git a/osaf/services/saf/amf/amfnd/susm.cc b/osaf/services/saf/amf/amfnd/susm.cc --- a/osaf/services/saf/amf/amfnd/susm.cc +++ b/osaf/services/saf/amf/amfnd/susm.cc @@ -461,7 +461,7 @@ static uint32_t assign_si_to_su(const AV if (m_AVND_SU_IS_PREINSTANTIABLE(su)) { uint32_t rank; - if (SA_AMF_HA_ACTIVE == si->curr_state) { + if (SA_AMF_HA_ACTIVE == si->curr_state || SA_AMF_HA_STANDBY == si->curr_state) { if (single_csi) { for (curr_csi = (AVND_COMP_CSI_REC *)m_NCS_DBLIST_FIND_FIRST(&si->csi_list), rank = curr_csi->rank; @@ -662,7 +662,7 @@ uint32_t avnd_su_si_assign(AVND_CB *cb, for (curr_si = (AVND_SU_SI_REC *)m_NCS_DBLIST_FIND_FIRST(&su->si_list); curr_si != nullptr; curr_si = (AVND_SU_SI_REC *)m_NCS_DBLIST_FIND_NEXT(&curr_si->su_dll_node)) { - if (SA_AMF_HA_ACTIVE == curr_si->curr_state) { + if (SA_AMF_HA_ACTIVE == curr_si->curr_state || SA_AMF_HA_STANDBY == curr_si->curr_state) { for (curr_csi = (AVND_COMP_CSI_REC *)m_NCS_DBLIST_FIND_FIRST(&curr_si->csi_list), rank = curr_csi->rank; (curr_csi != nullptr) && (curr_csi->rank == rank); ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel