Yes from me, but how's about AMF maintainers?
Thanks,
Minh

On 29/08/16 21:15, praveen malviya wrote:
> Hi Minh,
>
> I am pushing this README_NODEGROUP in amf directory.
> Any comment, will be updated post FC.
> Do you agree?
>
> Thanks,
> Praveen
>
>
> On 29-Aug-16 2:46 PM, praveen malviya wrote:
>> Hi Minh,
>>
>> Following content will go in Readme:
>>
>> High Level Implementation Notes for LOCK and SHUTDOWN operation on NG:
>> ===========================================================
>>
>> In 2N model, there are broadly two cases for LOCK and SHUTDOWN operation
>> on NG:
>> A) Whole 2N SG is mapped in NG which means all assigned SU are hosted on
>> the    nodes of NG. Or
>> B) SG is partially mapped in NG i.e either active SU or standby SU is
>> hosted    on one of the nodes of NG.
>>
>> Currently 2N model supports SI dep with in SU. So in LOCK and SHUTDOWN
>> operations quiesced and quiescing HA states, should be given honoring SI
>> deps respectively.
>> In case A), AVD_SG_FSM_SG_ADMIN is used in case A) as it honors si dep
>> while giving quiesced or quiescing assignments.
>> Case B) becomes the case of either lock of standby Node/SU or active
>> Node/Su which still needs to be handled honoring SI dep. Here
>> AVD_SG_FSM_SU_OPER fsm state is used via internal function
>> su_admin_down() as it handles SI dep.
>> So in 2N model, AMFD always uses internal FSM functions by calling
>> them inside the wrapper function ng_admin().
>>
>> Other red models do not support SI deps within SU as of now. So in these
>> models, AMFD uses AVD_SG_FSM_SG_REALIGN by keeping multiple SUs in
>> operation list while performing LOCK and SHUTDOWN operation on NG. Once
>> SI dep is fully supported in these modles, AMFD can use internal SG FSM
>> state like 2N.
>>
>> However there is one case, where AMFD can still use AVD_SG_FSM_SG_ADMIN
>> state for these red models when whole SG is mapped in NG (all assigned
>> SUs are hosted on on the nodes of NG). But possibility of such a case
>> is more in 2N model where only two SUs can be assigned anytime. In other
>> red models, there can be many assigned SUs so possibility of whole SG is
>> mapped in NG is very less. So, as of now, in other models
>> AVD_SG_FSM_SG_REALIGN states is used by keeping multiple SUs in oper
>> list for this case also.
>> But when SI deps, is completely supported with in SU in these models,
>> then AMFD cannot use realign state and it will have to use internal FSM
>> code as it will be enhanced for that.
>>
>>
>> Thanks,
>> Praveemn
>>
>>
>>
>> On 29-Aug-16 12:44 PM, minh chau wrote:
>>> Hi Praveen,
>>>
>>> Yes it's for #1454 and #1608
>>>
>>> Thanks,
>>> Minh
>>>
>>> On 29/08/16 17:08, praveen malviya wrote:
>>>> Hi Minh,
>>>>
>>>> Thanks for reviewing and testing.
>>>> I guess the ack is for both #1454 and #1608.
>>>> I will add a note.
>>>>
>>>>
>>>> Thanks,
>>>> Praveen
>>>>
>>>> On 29-Aug-16 12:21 PM, minh chau wrote:
>>>>> Hi Praveen,
>>>>>
>>>>> Ack (normal test only), the abnormal failover is supposed to work in
>>>>> REALIGN in NpM and Nway I think
>>>>> Maybe you can add a note in README to revisit the consistency of 
>>>>> using
>>>>> SG FSM for nodegroup in all SGs?
>>>>>
>>>>> Thanks,
>>>>> Minh
>>>>>
>>>>> On 24/08/16 19:02, praveen malviya wrote:
>>>>>> Hi Minh,
>>>>>>
>>>>>> Please responses inline with [Praveen]
>>>>>>
>>>>>> Thanks,
>>>>>> Praveen
>>>>>>
>>>>>> On 24-Aug-16 2:01 PM, minh chau wrote:
>>>>>>> Hi Praveen,
>>>>>>>
>>>>>>> I have tested the patches in case all SUs of NpM/Nway belong to one
>>>>>>> nodegroup, it works for me. Will try the case that SUs are 
>>>>>>> partially
>>>>>>> in/out of nodegroup tomorrow.
>>>>>>> But please, if you have time, can you try to make NpM's ng_admin 
>>>>>>> under
>>>>>>> FSM_SG_ADMIN. Addition to my previous comment, and also as you
>>>>>>> knew, in
>>>>>>> #1725 it's hard to deduce the states (sg fsm state is one of those)
>>>>>>> because different SG is using FSM differently in some cases. This
>>>>>>> inconsistency causes a difficult, instead of applying a generic
>>>>>>> solution
>>>>>>> for all SG, then each SG has to be treated different way. I 
>>>>>>> think we
>>>>>>> could also see this kind of problem in future.
>>>>>> [Praveen] In 5.1, #1725 is targeting only 2N model.In future when
>>>>>> #1725 will support other red models (upcoming releases), I would do
>>>>>> any changes that is required in other red models for NG operations.
>>>>>>
>>>>>>
>>>>>>> Thanks,
>>>>>>> Minh
>>>>>>>
>>>>>>> On 23/08/16 16:58, praveen malviya wrote:
>>>>>>>> Hi Minh,
>>>>>>>>
>>>>>>>> I have attached patches for #1454 and #1608 in the ticket #1454.
>>>>>>>> Please apply them in order.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Praveen
>>>>>>>>
>>>>>>>> On 23-Aug-16 11:56 AM, minh chau wrote:
>>>>>>>>> Hi Praveen,
>>>>>>>>>
>>>>>>>>> Since AMF longDn has been pushed, can you please attach a longDn
>>>>>>>>> rebased
>>>>>>>>> version to ticket (both #1454 + #1608) so we can do some test?
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Minh
>>>>>>>>>
>>>>>>>>> On 23/08/16 15:56, praveen malviya wrote:
>>>>>>>>>> Hi Minh,
>>>>>>>>>>
>>>>>>>>>> Thanks for reviewing the patch.
>>>>>>>>>> Please see inline with [Praveen]
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Praveen
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 23-Aug-16 5:53 AM, minh chau wrote:
>>>>>>>>>>> Hi Praveen,
>>>>>>>>>>>
>>>>>>>>>>> One comment in line with [Minh]
>>>>>>>>>>>
>>>>>>>>>>> Thanks
>>>>>>>>>>> Minh
>>>>>>>>>>>
>>>>>>>>>>> On 20/07/16 18:57, praveen.malv...@oracle.com wrote:
>>>>>>>>>>>> osaf/services/saf/amf/amfd/include/sg.h |   1 +
>>>>>>>>>>>>   osaf/services/saf/amf/amfd/nodegroup.cc |   4 +-
>>>>>>>>>>>>   osaf/services/saf/amf/amfd/sg_npm_fsm.cc |  62
>>>>>>>>>>>> ++++++++++++++++++++++++++++++-
>>>>>>>>>>>>   3 files changed, 62 insertions(+), 5 deletions(-)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Currently 2N, N-Way Active and NoRed models are supported for
>>>>>>>>>>>> lock,
>>>>>>>>>>>> shutdown,
>>>>>>>>>>>> lock-in and unlock-in admin operations on NGs.
>>>>>>>>>>>>
>>>>>>>>>>>> This patch supports NplusM model also.
>>>>>>>>>>>>
>>>>>>>>>>>> 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
>>>>>>>>>>>> @@ -507,6 +507,7 @@ public:
>>>>>>>>>>>>       uint32_t susi_failed(AVD_CL_CB *cb, AVD_SU *su,
>>>>>>>>>>>>           struct avd_su_si_rel_tag *susi, AVSV_SUSI_ACT act,
>>>>>>>>>>>> SaAmfHAStateT state);
>>>>>>>>>>>>           void node_fail_si_oper(AVD_CL_CB *cb, AVD_SU *su);
>>>>>>>>>>>> +    void ng_admin(AVD_SU *su, AVD_AMF_NG *ng);
>>>>>>>>>>>>             private:
>>>>>>>>>>>>           uint32_t su_fault_su_oper(AVD_CL_CB *cb, AVD_SU 
>>>>>>>>>>>> *su);
>>>>>>>>>>>> diff --git a/osaf/services/saf/amf/amfd/nodegroup.cc
>>>>>>>>>>>> b/osaf/services/saf/amf/amfd/nodegroup.cc
>>>>>>>>>>>> --- a/osaf/services/saf/amf/amfd/nodegroup.cc
>>>>>>>>>>>> +++ b/osaf/services/saf/amf/amfd/nodegroup.cc
>>>>>>>>>>>> @@ -687,6 +687,7 @@ void avd_ng_admin_state_set(AVD_AMF_NG*
>>>>>>>>>>>> avd_send_admin_state_chg_ntf(&ng->name,
>>>>>>>>>>>> (SaAmfNotificationMinorIdT)SA_AMF_NTFID_NG_ADMIN_STATE,
>>>>>>>>>>>>               old_state, ng->saAmfNGAdminState);
>>>>>>>>>>>> +    TRACE_LEAVE();
>>>>>>>>>>>>   }
>>>>>>>>>>>>   /**
>>>>>>>>>>>>    * @brief  Verify if Node is stable for admin operation on
>>>>>>>>>>>> Nodegroup
>>>>>>>>>>>> etc.
>>>>>>>>>>>> @@ -749,8 +750,7 @@ static SaAisErrorT check_red_model_servi
>>>>>>>>>>>>               LOG_NO("service outage for '%s' because of
>>>>>>>>>>>> shutdown/lock "
>>>>>>>>>>>>                       "on 
>>>>>>>>>>>> '%s'",sg->name.value,ng->name.value);
>>>>>>>>>>>>   -        if ((sg->sg_redundancy_model ==
>>>>>>>>>>>> SA_AMF_N_WAY_REDUNDANCY_MODEL) ||
>>>>>>>>>>>> -                (sg->sg_redundancy_model ==
>>>>>>>>>>>> SA_AMF_NPM_REDUNDANCY_MODEL)) {
>>>>>>>>>>>> +        if (sg->sg_redundancy_model ==
>>>>>>>>>>>> SA_AMF_N_WAY_REDUNDANCY_MODEL) {
>>>>>>>>>>>>               LOG_NO("Admin op on '%s' hosting SUs of '%s' 
>>>>>>>>>>>> with
>>>>>>>>>>>> redundancy '%u' "
>>>>>>>>>>>>                       "is not supported",ng->name.value,
>>>>>>>>>>>> sg->name.value,
>>>>>>>>>>>> sg->sg_redundancy_model);
>>>>>>>>>>>> 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
>>>>>>>>>>>> @@ -120,16 +120,16 @@ static AVD_SU_SI_REL *avd_sg_npm_su_othr
>>>>>>>>>>>>           if (i_susi->si->list_of_sisu != i_susi) {
>>>>>>>>>>>>               o_susi = i_susi->si->list_of_sisu;
>>>>>>>>>>>>               if (o_susi->fsm != AVD_SU_SI_STATE_UNASGN)
>>>>>>>>>>>> -                return o_susi;
>>>>>>>>>>>> +                break;
>>>>>>>>>>>>           } else if (i_susi->si->list_of_sisu->si_next !=
>>>>>>>>>>>> AVD_SU_SI_REL_NULL) {
>>>>>>>>>>>>               o_susi = i_susi->si->list_of_sisu->si_next;
>>>>>>>>>>>>               if (o_susi->fsm != AVD_SU_SI_STATE_UNASGN)
>>>>>>>>>>>> -                return o_susi;
>>>>>>>>>>>> +                break;
>>>>>>>>>>>>           }
>>>>>>>>>>>>             i_susi = i_susi->su_next;
>>>>>>>>>>>>       }
>>>>>>>>>>>> -
>>>>>>>>>>>> +    TRACE_LEAVE2("o_susi:'%p'",o_susi);
>>>>>>>>>>>>       return o_susi;
>>>>>>>>>>>>   }
>>>>>>>>>>>>   @@ -4452,6 +4452,62 @@ uint32_t 
>>>>>>>>>>>> SG_NPM::sg_admin_down(AVD_CL_CB
>>>>>>>>>>>>       return NCSCC_RC_SUCCESS;
>>>>>>>>>>>>   }
>>>>>>>>>>>>   +/*
>>>>>>>>>>>> + * @brief      Handles modification of assignments in SU of
>>>>>>>>>>>> NpM SG
>>>>>>>>>>>> + *             because of lock or shutdown operation on Node
>>>>>>>>>>>> group.
>>>>>>>>>>>> + *             If SU does not have any SIs assigned to it, 
>>>>>>>>>>>> AMF
>>>>>>>>>>>> will
>>>>>>>>>>>> try
>>>>>>>>>>>> + *             to instantiate new SUs in the SG. If SU has
>>>>>>>>>>>> assignments,
>>>>>>>>>>>> + *             then depending upon lock or shutdown 
>>>>>>>>>>>> operation,
>>>>>>>>>>>> quiesced
>>>>>>>>>>>> + *             or quiescing state will be sent for active SIs
>>>>>>>>>>>> in SU.
>>>>>>>>>>>> + *           If SU has only standby assignments then 
>>>>>>>>>>>> remove the
>>>>>>>>>>>> assignments.
>>>>>>>>>>>> + *
>>>>>>>>>>>> + * @param[in]  ptr to SU
>>>>>>>>>>>> + * @param[in]  ptr to nodegroup AVD_AMF_NG.
>>>>>>>>>>>> + */
>>>>>>>>>>>> +void SG_NPM::ng_admin(AVD_SU *su, AVD_AMF_NG *ng)
>>>>>>>>>>>> +{
>>>>>>>>>>>> +  SaAmfHAStateT ha_state;
>>>>>>>>>>>> +
>>>>>>>>>>>> +  TRACE_ENTER2("'%s', sg_fsm_state:%u",su->name.value,
>>>>>>>>>>>> +    su->sg_of_su->sg_fsm_state);
>>>>>>>>>>>> +
>>>>>>>>>>>> +  if (su->list_of_susi == nullptr) {
>>>>>>>>>>>> +    avd_sg_app_su_inst_func(avd_cb, su->sg_of_su);
>>>>>>>>>>>> +    return;
>>>>>>>>>>>> +  }
>>>>>>>>>>>> +
>>>>>>>>>>>> +  if (ng->saAmfNGAdminState == SA_AMF_ADMIN_SHUTTING_DOWN)
>>>>>>>>>>>> +    ha_state = SA_AMF_HA_QUIESCING;
>>>>>>>>>>>> +  else
>>>>>>>>>>>> +    ha_state = SA_AMF_HA_QUIESCED;
>>>>>>>>>>>> +
>>>>>>>>>>>> +  if (su->list_of_susi->state == SA_AMF_HA_ACTIVE) {
>>>>>>>>>>>> +    if (avd_sg_su_si_mod_snd(avd_cb, su, ha_state) ==
>>>>>>>>>>>> NCSCC_RC_FAILURE) {
>>>>>>>>>>>> +      LOG_ER("quiescing/quiesced state transtion failed for
>>>>>>>>>>>> '%s'",su->name.value);
>>>>>>>>>>>> +      goto done;
>>>>>>>>>>>> +    }
>>>>>>>>>>>> +  } else {
>>>>>>>>>>>> +    if (avd_sg_su_si_del_snd(avd_cb, su) == 
>>>>>>>>>>>> NCSCC_RC_FAILURE) {
>>>>>>>>>>>> +      LOG_ER("removal of standby assignment failed for
>>>>>>>>>>>> '%s'",su->name.value);
>>>>>>>>>>>> +      goto done;
>>>>>>>>>>>> +    }
>>>>>>>>>>>> +  }
>>>>>>>>>>>> +
>>>>>>>>>>>> +  avd_sg_su_oper_list_add(avd_cb, su, false);
>>>>>>>>>>>> + su->sg_of_su->set_fsm_state(AVD_SG_FSM_SG_REALIGN);
>>>>>>>>>>> [Minh]: For ng_admin operation, 2N is using fsm
>>>>>>>>>>> AVD_SG_FSM_SG_ADMIN, the
>>>>>>>>>>> NoRed, NwayActive are using AVD_SG_FSM_SG_REALIGN. Now the
>>>>>>>>>>> support for
>>>>>>>>>>> NpM and Nway are using AVD_SG_FSM_SG_REALIGN also.
>>>>>>>>>>> Quickly browsing through ng_admin() of NoRed, NwayActive, NpM,
>>>>>>>>>>> Nway,
>>>>>>>>>>> they are very similar to the existing of those sg_admin_down(),
>>>>>>>>>>> respectively. I think the NoRed, Nway, NwayACtive, NpM 
>>>>>>>>>>> should be
>>>>>>>>>>> using
>>>>>>>>>>> AVD_SG_FSM_SG_ADMIN in the same way as 2N. The reason is the 
>>>>>>>>>>> same
>>>>>>>>>>> admin
>>>>>>>>>>> operation should be treated in the same SG FSM state/code
>>>>>>>>>>> between SG
>>>>>>>>>>> types, and if sg_admin_down() works, we should reuse them.
>>>>>>>>>>
>>>>>>>>>> In 2N model, there are only two cases:
>>>>>>>>>> A) Whole SG is mapped in NG or
>>>>>>>>>> B) SG is partially mapped in NG. One of the SU is having 
>>>>>>>>>> active or
>>>>>>>>>> standby assignments in one of the nodes of NG.
>>>>>>>>>>
>>>>>>>>>> So in 2N model, AVD_SG_FSM_SG_ADMIN is used in case A) 
>>>>>>>>>> because 2N
>>>>>>>>>> model supports SI dep within SU. Because of this 
>>>>>>>>>> quiesced/quiescing
>>>>>>>>>> assignments must be given honoring si dep. AVD_SG_FSM_SG_ADMIN
>>>>>>>>>> honors
>>>>>>>>>> that while giving quiesced/quiescing assignments.
>>>>>>>>>> Case B) becomes the case of either lock of standby Node/su or
>>>>>>>>>> active
>>>>>>>>>> node/su which still needs to be handled honoring SI dep in
>>>>>>>>>> su_admin_down().
>>>>>>>>>>
>>>>>>>>>> Other red models do not support, SI deps within SU. Once it is
>>>>>>>>>> supported we will have to use internal SG FSM state. But 
>>>>>>>>>> without SI
>>>>>>>>>> deps, other red models can still use AVD_SG_FSM_SG_ADMIN when
>>>>>>>>>> whole SG
>>>>>>>>>> is mapped in NG. But possibility of such a case is more in 2N 
>>>>>>>>>> model
>>>>>>>>>> where only two SUs can be assigned anytime. In other red models,
>>>>>>>>>> there
>>>>>>>>>> can be many assigned SUs so possibility of whole SG is mapped in
>>>>>>>>>> NG is
>>>>>>>>>> very less. So in other models AVD_SG_FSM_SG_REALIGN states is
>>>>>>>>>> used by
>>>>>>>>>> keeping multiple SUs in oper list because these red models are
>>>>>>>>>> handling switchover situation in REALIGN state (removal of
>>>>>>>>>> standby is
>>>>>>>>>> always handled in realign state). But when SI deps, is 
>>>>>>>>>> completely
>>>>>>>>>> supported within SU in these models, then we cannot use realign
>>>>>>>>>> state
>>>>>>>>>> and we will have to use internal FSM code because internal 
>>>>>>>>>> FSM code
>>>>>>>>>> will be enhanced for that.
>>>>>>>>>> In 2N model, switchover is being done honoring SI dep but that
>>>>>>>>>> is in
>>>>>>>>>> some bug fix cases.
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Praveen
>>>>>>>>>>>> +
>>>>>>>>>>>> +  //Increment node counter for tracking status of ng 
>>>>>>>>>>>> operation.
>>>>>>>>>>>> +  if ((su->any_susi_fsm_in_modify() == true) ||
>>>>>>>>>>>> +       (su->any_susi_fsm_in_unasgn() == true)) {
>>>>>>>>>>>> + su->su_on_node->su_cnt_admin_oper++;
>>>>>>>>>>>> +    TRACE("node:%s, su_cnt_admin_oper:%u",
>>>>>>>>>>>> su->su_on_node->name.value,
>>>>>>>>>>>> + su->su_on_node->su_cnt_admin_oper);
>>>>>>>>>>>> +  }
>>>>>>>>>>>> +done:
>>>>>>>>>>>> +  TRACE_LEAVE();
>>>>>>>>>>>> +  return;
>>>>>>>>>>>> +}
>>>>>>>>>>>> +
>>>>>>>>>>>>   SG_NPM::~SG_NPM() {
>>>>>>>>>>>>   }
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>> ------------------------------------------------------------------------------
>>  
>>
>> _______________________________________________
>> Opensaf-devel mailing list
>> Opensaf-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/opensaf-devel
>>
>


------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to