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

Reply via email to