Hi Minh,
                We have corrected our configurations, and many failures are 
gone, but we still have few failures to analyse. Please give us some more 
time(one week more). We are working on it and we will update you.

Thanks
-Nagu

> -----Original Message-----
> From: minhchau [mailto:[email protected]]
> Sent: 24 April 2014 11:40
> To: Nagendra Kumar; [email protected]; [email protected]
> Cc: [email protected]
> Subject: Re: [devel] [PATCH 1 of 1]
> 
> Hi,
> 
> Any info updated for testing this patch? Thanks
> 
> BR/Minh
> On 4/18/2014 9:34 PM, Nagendra Kumar wrote:
> > Hi,
> >     We have some failed test cases with this patch. Most probably, this
> would be because of our configuration problem. We will get back early next
> week. Can you please hold on this patch.
> >
> > Thanks
> > -Nagu
> >
> >> -----Original Message-----
> >> From: Nagendra Kumar
> >> Sent: 18 April 2014 15:41
> >> To: Minh Hon Chau; [email protected];
> >> [email protected]
> >> Cc: [email protected]
> >> Subject: Re: [devel] [PATCH 1 of 1]
> >>
> >> Ack with minor comment :
> >>
> >> +               TRACE_1("su'%s', current number of active SIs'%u'",
> >> + su->name.value, su->saAmfSUNumCurrActiveSIs);
> >>
> >> Should be
> >> +               TRACE_1("su'%s', current number of active SIs'%u',
> >> + standbySIs'%u"", su->name.value, su->saAmfSUNumCurrActiveSIs,
> >>                    su->saAmfSUNumCurrStandbySIs);
> >>
> >>
> >> Thanks
> >> -Nagu
> >>
> >>> -----Original Message-----
> >>> From: Minh Hon Chau [mailto:[email protected]]
> >>> Sent: 07 April 2014 12:10
> >>> To: Nagendra Kumar; [email protected];
> >>> [email protected]
> >>> Cc: [email protected]
> >>> Subject: [PATCH 1 of 1]
> >>>
> >>>   osaf/services/saf/amf/amfd/include/sg.h      |   2 +-
> >>>   osaf/services/saf/amf/amfd/sg.cc             |  21 +++++++++++++++++++++
> >>>   osaf/services/saf/amf/amfd/sg_nway_fsm.cc    |  27
> >>> +++++++++++++++++++++++++++
> >>>   osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc |  24
> >>> ++++++++++++++++++++++++
> >>>   4 files changed, 73 insertions(+), 1 deletions(-)
> >>>
> >>>
> >>> #
> >>> #Problem: The implementation has not respected the AMF spec
> >>> #according to the configuration of saAmfSGNumPrefAssignedSUs #
> >>> #Analysis: In AMF spec, the 3.6.4.3 and 3.6.5.3 mention that the
> >>> #saAmfSGNumPrefAssignedSUs affected in assignment in nway and
> >>> #nway-active sg #
> >>> #Change: Skip the SI assignment for the unassigned SU if the
> >>> #current number of assigned SU exceeding the
> >>> saAmfSGNumPrefAssignedSUs
> >>>
> >>> 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
> >>> @@ -356,6 +356,6 @@ extern void avd_su_role_failover(struct  extern
> >>> bool sg_is_tolerance_timer_running_for_any_si(AVD_SG *sg);  extern
> >>> void avd_sg_adjust_config(AVD_SG *sg);  extern uint32_t
> >>> sg_instantiated_su_count(const AVD_SG *sg);
> >>> -
> >>> +extern uint32_t sg_assigned_su_count(const AVD_SG *sg);
> >>>
> >>>   #endif
> >>> diff --git a/osaf/services/saf/amf/amfd/sg.cc
> >>> b/osaf/services/saf/amf/amfd/sg.cc
> >>> --- a/osaf/services/saf/amf/amfd/sg.cc
> >>> +++ b/osaf/services/saf/amf/amfd/sg.cc
> >>> @@ -1617,3 +1617,24 @@ uint32_t sg_instantiated_su_count(const
> >>>           return inst_su_count;
> >>>   }
> >>>
> >>> +/**
> >>> + * @brief Counts number of assigned su in the sg.
> >>> + * @param Service Group
> >>> + *
> >>> + * @return Number of assigned su in the sg.
> >>> + */
> >>> +uint32_t sg_assigned_su_count(const AVD_SG *sg) {
> >>> +       uint32_t su_count;
> >>> +       const AVD_SU *su;
> >>> +
> >>> +       for (su = sg->list_of_su, su_count = 0; su != NULL; su =
> >>> + su->sg_list_su_next)
> >>> {
> >>> +               TRACE_1("su'%s', current number of active SIs'%u'",
> >>> + su->name.value,
> >>> su->saAmfSUNumCurrActiveSIs);
> >>> +               if (su->saAmfSUNumCurrActiveSIs > 0 || su-
> >>>> saAmfSUNumCurrStandbySIs > 0) {
> >>> +                       su_count++;
> >>> +               }
> >>> +       }
> >>> +
> >>> +       return su_count;
> >>> +}
> >>> +
> >>> 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
> >>> @@ -1318,6 +1318,13 @@ AVD_SU
> *avd_sg_nway_get_su_std_equal(AVD
> >>>                                    (curr_su->saAmfSUNumCurrStandbySIs >=
> >>> curr_su->sg_of_su->saAmfSGMaxStandbySIsperSU)))
> >>>                           continue;
> >>>
> >>> +         /* Do not pick up unassigned su if current number of assigned
> >>> su
> >>> +          * exceeds the saAmfSGNumPrefAssignedSUs
> >>> +          */
> >>> +         if ((sg_assigned_su_count(curr_su->sg_of_su) >= curr_su-
> >>>> sg_of_su->saAmfSGNumPrefAssignedSUs) &&
> >>> +                 (curr_su->saAmfSUNumCurrActiveSIs == 0) &&
> >>> (curr_su->saAmfSUNumCurrStandbySIs == 0))
> >>> +                 continue;
> >>> +
> >>>                   l_flag = true;
> >>>
> >>>                   /* Get the current no of Standby assignments on the su 
> >>> */ @@
> >>> -1508,6 +1515,14 @@ uint32_t avd_sg_nway_si_assign(AVD_CL_CB
> >>>                           if (!curr_su)
> >>>                                   continue;
> >>>
> >>> +                 /* Do not pick up unassigned su if current number of
> >>> assigned su
> >>> +                  * exceeds the saAmfSGNumPrefAssignedSUs
> >>> +                  */
> >>> +                 if ((sg_assigned_su_count(curr_su->sg_of_su) >=
> >>> curr_su->sg_of_su->saAmfSGNumPrefAssignedSUs) &&
> >>> +                         (curr_su->saAmfSUNumCurrActiveSIs == 0)
> >>> && (curr_su->saAmfSUNumCurrStandbySIs == 0)) {
> >>> +                         curr_su = 0;
> >>> +                         continue;
> >>> +                 }
> >>>                           if ((curr_su->saAmfSuReadinessState ==
> >>> SA_AMF_READINESS_IN_SERVICE) &&
> >>>                               
> >>> ((curr_su->sg_of_su->saAmfSGMaxActiveSIsperSU
> >>> == 0) ||
> >>>                                (curr_su->saAmfSUNumCurrActiveSIs < 
> >>> curr_su-
> >>>> sg_of_su->saAmfSGMaxActiveSIsperSU)))
> >>> @@ -1525,6 +1540,10 @@ uint32_t avd_sg_nway_si_assign(AVD_CL_CB
> >>>                           for (curr_su = sg->list_of_su; curr_su; curr_su 
> >>> =
> >>> curr_su->sg_list_su_next) {
> >>>                                   if (SA_AMF_READINESS_IN_SERVICE ==
> >>> curr_su->saAmfSuReadinessState) {
> >>>                                           is_all_su_oos = false;
> >>> +                                 if ((sg_assigned_su_count(curr_su-
> >>>> sg_of_su) >= curr_su->sg_of_su->saAmfSGNumPrefAssignedSUs) &&
> >>> +                                         (curr_su-
> >>>> saAmfSUNumCurrActiveSIs == 0) && (curr_su-
> >>> saAmfSUNumCurrStandbySIs
> >>> == 0))
> >>> +                                         continue;
> >>> +
> >>>                                           /* if equal distribution is 
> >>> needed when
> >> all SUs are of
> >>>                                            * equal rank or no rank 
> >>> configured for
> >> any of the SU
> >>>                                            */
> >>> @@ -1614,6 +1633,10 @@ uint32_t avd_sg_nway_si_assign(AVD_CL_CB
> >>>                                (curr_su->saAmfSUNumCurrStandbySIs >= 
> >>> curr_su-
> >>>> sg_of_su->saAmfSGMaxStandbySIsperSU)))
> >>>                                   continue;
> >>>
> >>> +                 if ((sg_assigned_su_count(curr_su->sg_of_su) >=
> >>> curr_su->sg_of_su->saAmfSGNumPrefAssignedSUs) &&
> >>> +                         (curr_su->saAmfSUNumCurrActiveSIs == 0)
> >>> && (curr_su->saAmfSUNumCurrStandbySIs == 0))
> >>> +                         continue;
> >>> +
> >>>                           /* verify if this su does not have this 
> >>> assignment */
> >>>                           if (avd_su_susi_find(cb, curr_su, 
> >>> &curr_si->name) !=
> >>> AVD_SU_SI_REL_NULL)
> >>>                                   continue;
> >>> @@ -1677,6 +1700,10 @@ uint32_t avd_sg_nway_si_assign(AVD_CL_CB
> >>>                                            (curr_su-
> >>>> saAmfSUNumCurrStandbySIs >= curr_su->sg_of_su-
> >>>> saAmfSGMaxStandbySIsperSU)))
> >>>                                   continue;
> >>>
> >>> +                 if ((sg_assigned_su_count(curr_su->sg_of_su) >=
> >>> curr_su->sg_of_su->saAmfSGNumPrefAssignedSUs) &&
> >>> +                         (curr_su->saAmfSUNumCurrActiveSIs == 0)
> >>> && (curr_su->saAmfSUNumCurrStandbySIs == 0))
> >>> +                         continue;
> >>> +
> >>>                           su_found = true;
> >>>
> >>>                           /* verify if this su does not have this 
> >>> assignment */ 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
> >>> @@ -105,6 +105,14 @@ AVD_SU *avd_sg_nacvred_su_chose_asgn(AVD
> >>>                                   continue;
> >>>                           }
> >>>
> >>> +                 /* Do not pick up unassigned su if current number of
> >>> assigned su
> >>> +                  * exceeds the saAmfSGNumPrefAssignedSUs
> >>> +                  */
> >>> +                 if ((sg_assigned_su_count(i_su->sg_of_su) >= i_su-
> >>>> sg_of_su->saAmfSGNumPrefAssignedSUs) &&
> >>> +                         (i_su->saAmfSUNumCurrActiveSIs == 0)) {
> >>> +                         i_su = i_su->sg_list_su_next;
> >>> +                         continue;
> >>> +                 }
> >>>                           if (avd_su_susi_find(cb, i_su, &i_si->name)
> >>>                               != AVD_SU_SI_REL_NULL) {
> >>>                                   /* This SU has already a assignment for 
> >>> this SI
> >> go to the @@
> >>> -145,6 +153,12 @@ AVD_SU *avd_sg_nacvred_su_chose_asgn(AVD
> >>>                                   continue;
> >>>                           }
> >>>
> >>> +                 if ((sg_assigned_su_count(i_su->sg_of_su) >= i_su-
> >>>> sg_of_su->saAmfSGNumPrefAssignedSUs) &&
> >>> +                         (i_su->saAmfSUNumCurrActiveSIs == 0)) {
> >>> +                         i_su = i_su->sg_list_su_next;
> >>> +                         continue;
> >>> +                 }
> >>> +
> >>>                           l_flag = true;
> >>>
> >>>                           if (m_AVD_SI_ACTV_MAX_SU(i_si) <=
> >>> m_AVD_SI_ACTV_CURR_SU(i_si)) {
> >>> @@ -1998,6 +2012,16 @@ static AVD_SU *avd_get_qualified_su(AVD_
> >>>                           i_su = i_su->sg_list_su_next;
> >>>                           continue;
> >>>                   }
> >>> +
> >>> +         /* Do not pick up unassigned su if current number of assigned
> >>> su
> >>> +          * exceeds the saAmfSGNumPrefAssignedSUs
> >>> +          */
> >>> +         if ((sg_assigned_su_count(i_su->sg_of_su) >= i_su->sg_of_su-
> >>>> saAmfSGNumPrefAssignedSUs) &&
> >>> +                 (i_su->saAmfSUNumCurrActiveSIs == 0)) {
> >>> +                 i_su = i_su->sg_list_su_next;
> >>> +                 continue;
> >>> +         }
> >>> +
> >>>                   l_flag = true;
> >>>                   if (avd_su_susi_find(avd_cb, i_su, &i_si->name) !=
> >>> AVD_SU_SI_REL_NULL) {
> >>>                           /* This SU has already a assignment for this SI 
> >>> go to the
> >> ---------------------------------------------------------------------
> >> --------- Learn Graph Databases - Download FREE O'Reilly Book "Graph
> >> Databases" is the definitive new guide to graph databases and their
> >> applications. Written by three acclaimed leaders in the field, this
> >> first edition is now available. Download your free book today!
> >> http://p.sf.net/sfu/NeoTech
> >> _______________________________________________
> >> Opensaf-devel mailing list
> >> [email protected]
> >> https://lists.sourceforge.net/lists/listinfo/opensaf-devel
> 

------------------------------------------------------------------------------
Start Your Social Network Today - Download eXo Platform
Build your Enterprise Intranet with eXo Platform Software
Java Based Open Source Intranet - Social, Extensible, Cloud Ready
Get Started Now And Turn Your Intranet Into A Collaboration Platform
http://p.sf.net/sfu/ExoPlatform
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to