osaf/services/saf/amf/amfnd/comp.cc |  4 ++--
 osaf/services/saf/amf/amfnd/susm.cc |  4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)


When saAmfCSIDependencies is used to order CSIs, STANDBY assignment is done in
reverse order from 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) {
@@ -1634,7 +1634,7 @@ uint32_t avnd_comp_csi_assign_done(AVND_
                curr_csi = 
m_AVND_CSI_REC_FROM_COMP_DLL_NODE_GET(m_NCS_DBLIST_FIND_FIRST(&comp->csi_list));
 
                if (all_csis_at_rank_assigned(curr_csi->si, curr_csi->rank)) {
-                       uint32_t rank = (SA_AMF_HA_ACTIVE == 
curr_csi->si->curr_state) ?
+                       uint32_t rank = (SA_AMF_HA_ACTIVE == 
curr_csi->si->curr_state || SA_AMF_HA_STANDBY == curr_csi->si->curr_state) ?
                                curr_csi->rank + 1 : curr_csi->rank - 1 ;
 
                        if (find_unassigned_csi_at_rank(curr_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);


------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to