Hi Nagu,

Thanks for your update. How's the test been, the patches are still 
working well?

Thanks,
Minh

On 07/10/16 23:33, Nagendra Kumar wrote:
> Update:
>
>> Further testing will continue:
>> 1. Faults during assignments.
> This worked fine and no issues has been found.
>
>> 2. Faults during admin operations.
> Testing is undergoing. Some of the initial test cases have passed.
>
> Thanks
> -Nagu
>
>> -----Original Message-----
>> From: Nagendra Kumar
>> Sent: 22 September 2016 16:52
>> To: minh chau; hans.nordeb...@ericsson.com; Praveen Malviya;
>> gary....@dektech.com.au; long.hb.ngu...@dektech.com.au
>> Cc: opensaf-devel@lists.sourceforge.net
>> Subject: Re: [devel] [PATCH 2 of 4] AMFND: Admin operation continuation if
>> csi completes during headless [#1725 part 1] V1
>>
>> Hi Minh,
>>
>> I have tested following scenarios till now and works well:
>> 1. Faults under standalone system. Act and Std SUs are there and cluster
>> went headless. Faults occurred in Act and Standby separately and together
>> with recovery as restart, su f/o, node f/o, node s/o. Faults are also mixed
>> with two SGs.
>> 2. During headless, the escalations from comp restart->su restart->su f/o ->
>> node f/o. Two SG was used for testings. When cluster recovers, the system
>> works well as expected.
>>
>> SG and node Auto repair was enabled and disabled in many test cases.
>>
>> Further testing will continue:
>> 1. Faults during assignments.
>> 2. Faults during admin operations.
>>
>> Thanks
>> -Nagu
>>
>>> -----Original Message-----
>>> From: minh chau [mailto:minh.c...@dektech.com.au]
>>> Sent: 15 September 2016 12:27
>>> To: Nagendra Kumar; hans.nordeb...@ericsson.com; Praveen Malviya;
>>> gary....@dektech.com.au; long.hb.ngu...@dektech.com.au
>>> Cc: opensaf-devel@lists.sourceforge.net
>>> Subject: Re: [devel] [PATCH 2 of 4] AMFND: Admin operation
>>> continuation if csi completes during headless [#1725 part 1] V1
>>>
>>> Hi Nagu,
>>>
>>> Yes you are right. The "component failover" is unstable, I think I
>>> will post my analysis of component failover problem to #1902 after you
>>> have verified the other recoveries.
>>>
>>> Thanks,
>>> Minh
>>>
>>> On 15/09/16 16:51, Nagendra Kumar wrote:
>>>> Hi Minh,
>>>>            @2.a.) and @2.b.) are working except "Component Failover"
>>> as recovery. Other recovery like SU Failover, etc are working fine
>>> with 1725_pending_review.tgz and
>> 07_no_recovery_if_no_pending_susi.diff.
>>>> Please confirm.
>>>>
>>>> Thanks
>>>> -Nagu
>>>>
>>>>> -----Original Message-----
>>>>> From: Nagendra Kumar
>>>>> Sent: 15 September 2016 12:13
>>>>> To: minh chau; hans.nordeb...@ericsson.com; Praveen Malviya;
>>>>> gary....@dektech.com.au; long.hb.ngu...@dektech.com.au
>>>>> Cc: opensaf-devel@lists.sourceforge.net
>>>>> Subject: Re: [devel] [PATCH 2 of 4] AMFND: Admin operation
>>>>> continuation if csi completes during headless [#1725 part 1] V1
>>>>>
>>>>> Hi Minh,
>>>>>>> If there's no any major problem, can we make SI Dep as last phase?
>>>>> Yes, absolutely. There is no problem.
>>>>>>> If I am right, I think you are testing @2.a) - and *fault* has
>>>>>>> just been as
>>>>> node reboot/powered-off by user during headless.
>>>>> Yes, you are right.
>>>>>
>>>>> Thanks
>>>>> -Nagu
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: minh chau [mailto:minh.c...@dektech.com.au]
>>>>>> Sent: 14 September 2016 17:54
>>>>>> To: Nagendra Kumar; hans.nordeb...@ericsson.com; Praveen
>> Malviya;
>>>>>> gary....@dektech.com.au; long.hb.ngu...@dektech.com.au
>>>>>> Cc: opensaf-devel@lists.sourceforge.net
>>>>>> Subject: Re: [devel] [PATCH 2 of 4] AMFND: Admin operation
>>>>>> continuation if csi completes during headless [#1725 part 1] V1
>>>>>>
>>>>>> Hi Nagu,
>>>>>>
>>>>>> I have proposed to change the order on 28 Jul:
>>>>>>
>>>>>> ==============
>>>>>>
>>>>>> I would like to change the above orders of implementation:
>>>>>> @0. We are here now: No admin op continuation, no recovery on
>>>>>> faults during headless.
>>>>>> Since componentRestart/suRestart has no impact on recovery after
>>>>>> headless, faults during headless here mean: failover escalation,
>>>>>> node reboot/powered-off by user during headless. Faults are
>>>>>> different phenomenons but they all result in loss of SUSI. Having
>>>>>> #1902 will remove the major impact of a node reboot due to
>>>>>> immediate escalation and AMF also has to deal with the loss of
>>>>>> SUSI the same as without
>>>>>> #1902 plus failover escalation
>>>>>>
>>>>>> @1. Admin op continuation without required recovery on faults
>>>>>> during headless
>>>>>> @1.a) All CSI(s) callback completes during headless, but SUSI
>>>>>> states are still QUIESCED/QUIESCING
>>>>>> @1.b) One of CSI(s) callback is still ongoing after headless (AMFD
>>>>>> would have to wait for it?)
>>>>>>
>>>>>> @2. Recovery on faults. (Doing fault recovery needs to consider
>>>>>> admin op continuation which would have been implemented in step
>>>>>> @1) Need
>>>>>> #1902
>>>>>> @2.a.) Faults in normal flow: No admin op continuation is required
>>>>>> after headless, but fault did happen during headless
>>>>>> @2.b.) Faults happen during admin operation while headless, after
>>>>>> headless AMFD needs to consider a recovery on fault together with
>>>>>> admin op continuation.
>>>>>>
>>>>>> @3. @1 + @2 + With SI Dep.
>>>>>>
>>>>>> ===============
>>>>>> I thought we have followed the above order so far? Because part 1
>>>>>> was acked, which is "@1. Admin op continuation without required
>>>>>> recovery on faults during headless"
>>>>>> If there's no any major problem, can we make SI Dep as last phase?
>>>>>> If I am right, I think you are testing @2.a) - and *fault* has
>>>>>> just been as node reboot/powered-off by user during headless.
>>>>>>
>>>>>> Thanks,
>>>>>> Minh
>>>>>>
>>>>>> On 14/09/16 21:48, Nagendra Kumar wrote:
>>>>>>> Hi Minh,
>>>>>>>                 If it is not tested, then it is fine. But, we had added 
>>>>>>> (#1)
>>>>>>> the
>>>>>> following in the ticket #1725 on 27 Jul :
>>>>>>> ===========================================
>>>>>>> Nagendra Kumar - 2016-07-27
>>>>>>>
>>>>>>> For 2N red model, implementation can be done in the following
>>>>>>> phased
>>>>>> manner.
>>>>>>> It has advantages of being logically segregated and it continues
>>>>>>> from
>>>>>> where we left in 5.0.
>>>>>>> (Phases #1, #2 and #3 is more related to ticket #1725 and phases
>>>>>>> #4 and #5 are related to #1902)
>>>>>>>
>>>>>>> 1.    Node restart escalation (with and without SI Dep).
>>>>>>> 2.    Without Si Dep : Admin op (no faults/escalations).
>>>>>>> 3.    Without Si Dep : Admin Op + node restart faults/escalations
>> during
>>>>>> headless.
>>>>>>> 4.    Without Si Dep :
>>>>>>>        a.) All faults in normal flows.
>>>>>>>        b.) All faults during admin operation(minus node reboot
>>>>>>> during headless
>>>>>> as covered in #3).
>>>>>>>     5.   With Si Dep : #2, #3 and #4.
>>>>>>>
>>>>>>> Since 5.0 already has immediate escalation model (component and
>>>>>>> node
>>>>>> restart/reboot), so #1, #2 and #3 completes left over portion of
>>>>>> headless contribution in 5.0 with that model.
>>>>>>> ======================================
>>>>>>>
>>>>>>> Thanks
>>>>>>> -Nagu
>>>>>>>
>>>>>>>> -----Original Message-----
>>>>>>>> From: minh chau [mailto:minh.c...@dektech.com.au]
>>>>>>>> Sent: 14 September 2016 17:05
>>>>>>>> To: Nagendra Kumar; hans.nordeb...@ericsson.com; Praveen
>>> Malviya;
>>>>>>>> gary....@dektech.com.au; long.hb.ngu...@dektech.com.au
>>>>>>>> Cc: opensaf-devel@lists.sourceforge.net
>>>>>>>> Subject: Re: [devel] [PATCH 2 of 4] AMFND: Admin operation
>>>>>>>> continuation if csi completes during headless [#1725 part 1] V1
>>>>>>>>
>>>>>>>> Hi Nagu,
>>>>>>>>
>>>>>>>> SI Dep is the last phase of implementation of headless recovery,
>>>>>>>> its support is not included in all patches attached in ticket #1725.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Minh
>>>>>>>>
>>>>>>>> On 14/09/16 21:21, Nagendra Kumar wrote:
>>>>>>>>> Hi Minh,
>>>>>>>>>               Have you tested Si Dep (2N Red model) for "node
>>> restart test
>>>>>>>> cases" ? I can't see it in the test case doc.
>>>>>>>>> Thanks
>>>>>>>>> -Nagu
>>>>>>>>>
>>>>>>>>>> -----Original Message-----
>>>>>>>>>> From: Nagendra Kumar
>>>>>>>>>> Sent: 13 September 2016 11:20
>>>>>>>>>> To: minh chau; hans.nordeb...@ericsson.com; Praveen Malviya;
>>>>>>>>>> gary....@dektech.com.au; long.hb.ngu...@dektech.com.au
>>>>>>>>>> Cc: opensaf-devel@lists.sourceforge.net
>>>>>>>>>> Subject: Re: [devel] [PATCH 2 of 4] AMFND: Admin operation
>>>>>>>>>> continuation if csi completes during headless [#1725 part 1]
>>>>>>>>>> V1
>>>>>>>>>>
>>>>>>>>>> Hi Minh,
>>>>>>>>>>              I have tested these scenarios again and it works well.
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>> -Nagu
>>>>>>>>>>
>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>> From: minh chau [mailto:minh.c...@dektech.com.au]
>>>>>>>>>>> Sent: 12 September 2016 11:53
>>>>>>>>>>> To: Nagendra Kumar; hans.nordeb...@ericsson.com; Praveen
>>>>>> Malviya;
>>>>>>>>>>> gary....@dektech.com.au; long.hb.ngu...@dektech.com.au
>>>>>>>>>>> Cc: opensaf-devel@lists.sourceforge.net
>>>>>>>>>>> Subject: Re: [PATCH 2 of 4] AMFND: Admin operation
>>>>>>>>>>> continuation if csi completes during headless [#1725 part 1]
>>>>>>>>>>> V1
>>>>>>>>>>>
>>>>>>>>>>> Hi Nagu,
>>>>>>>>>>>
>>>>>>>>>>> One bug get hit by your configuration, where the absent SUSIs
>>>>>>>>>>> are found after headless but no real SUSIs are available also.
>>>>>>>>>>> In this case I think that AMFD can do like a fresh assignment.
>>>>>>>>>>> I attach the patch to ticket #1725, please help to test again.
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Minh
>>>>>>>>>>>
>>>>>>>>>>> On 12/09/16 11:09, minh chau wrote:
>>>>>>>>>>>> Hi Nagu,
>>>>>>>>>>>>
>>>>>>>>>>>> I'm running the tests with this configuration and will get
>>>>>>>>>>>> back to
>>>>> you.
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Minh
>>>>>>>>>>>>
>>>>>>>>>>>> On 09/09/16 22:26, Nagendra Kumar wrote:
>>>>>>>>>>>>> Hi Minh,
>>>>>>>>>>>>> I am using 1725_pending_review.tgz
>>>>>>>>>>>>> (1725_02_V2_bugfix_01_resend_buffer_in_set_leds.diff,
>>>>>>>>>>>>>
>> 1725_02_V2_bugfix_02_honor_clusterinit_nodesync_timer.diff,
>>>>>>>>>>>>> 1725_02_V2_bugfix_03_restore_ng_admin.diff,
>>>>>>>>>>>>> 1725_03_V4_failover_absent_susi_longDn.diff,
>>>>>>>>>>>>> 1725_04_V2_headless_validation.diff,
>>>>>>>>>>>>> 1725_05_V2_resend_oper_state.diff,
>>>>>>>>>>>>> 1725_06a_fullscope_escalation_headless.diff).
>>>>>>>>>>>>>
>>>>>>>>>>>>> I am doing basic node reboot validation testing with no faults.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Configuration: SU1(act) and SU2(stanby) both on PL-3.
>>>>>>>>>>>>>
>>>>>>>>>>>>> TC #1: Start SC-1, PL-3 and PL-5: Unlock SU1 and SU2. Stop
>>>>>>>>>>>>> SC-1 and stop PL-3, start PL-3 and start SC-1.
>>>>>>>>>>>>> After SC-1 and PL-3 comes back, ideally SU1 and SU2 should
>>>>>>>>>>>>> get assignments as Act and Std, but no assignment are being
>>>>>>>>>>>>> given to SUs on PL-3 and it shows following in status:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Only Su2 has Std assignment.
>>>>>>>>>>>>>
>>>>>>>>>>>>> safSISU=safSu=SC-
>>>>>>>>>>> 1\,safSg=NoRed\,safApp=OpenSAF,safSi=NoRed1,safApp=O
>>>>>>>>>>>>> penSAF
>>>>>>>>>>>>>
>>>>>>>>>>>>>              saAmfSISUHAState=ACTIVE(1)
>>>>>>>>>>>>> safSISU=safSu=PL-
>>>>>>>>>>> 5\,safSg=NoRed\,safApp=OpenSAF,safSi=NoRed2,safApp=O
>>>>>>>>>>>>> penSAF
>>>>>>>>>>>>>
>>>>>>>>>>>>>              saAmfSISUHAState=ACTIVE(1)
>>>>>>>>>>>>>
>> safSISU=safSu=SU2\,safSg=AmfDemo_2N\,safApp=AmfDemo1,safSi=AmfDe
>>>>>>>>>>> mo1,s
>>>>>>>>>>>>> afApp=AmfDemo1
>>>>>>>>>>>>>
>>>>>>>>>>>>>              saAmfSISUHAState=STANDBY(2)
>>>>>>>>>>>>> safSISU=safSu=SC-1\,safSg=2N\,safApp=OpenSAF,safSi=SC-
>>>>>>>>>>> 2N,safApp=OpenSAF
>>>>>>>>>>>>>              saAmfSISUHAState=ACTIVE(1)
>>>>>>>>>>>>> safSISU=safSu=PL-
>>>>>>>>>>> 3\,safSg=NoRed\,safApp=OpenSAF,safSi=NoRed3,safApp=O
>>>>>>>>>>>>> penSAF
>>>>>>>>>>>>>
>>>>>>>>>>>>>              saAmfSISUHAState=ACTIVE(1)
>>>>>>>>>>>>>
>>>>>>>>>>>>> TC #2: Configuration same as TC#1. Stop PL-3 and don't start.
>>>>>>>>>>>>> The same issue:
>>>>>>>>>>>>> safSISU=safSu=PL-
>>>>>>>>>>> 5\,safSg=NoRed\,safApp=OpenSAF,safSi=NoRed3,safApp=O
>>>>>>>>>>>>> penSAF
>>>>>>>>>>>>>
>>>>>>>>>>>>>              saAmfSISUHAState=ACTIVE(1)
>>>>>>>>>>>>>
>> safSISU=safSu=SU2\,safSg=AmfDemo_2N\,safApp=AmfDemo1,safSi=AmfDe
>>>>>>>>>>> mo1,s
>>>>>>>>>>>>> afApp=AmfDemo1
>>>>>>>>>>>>>
>>>>>>>>>>>>>              saAmfSISUHAState=STANDBY(2)
>>>>>>>>>>>>> safSISU=safSu=SC-
>>>>>>>>>>> 1\,safSg=NoRed\,safApp=OpenSAF,safSi=NoRed2,safApp=O
>>>>>>>>>>>>> penSAF
>>>>>>>>>>>>>
>>>>>>>>>>>>>              saAmfSISUHAState=ACTIVE(1)
>>>>>>>>>>>>> safSISU=safSu=SC-1\,safSg=2N\,safApp=OpenSAF,safSi=SC-
>>>>>>>>>>> 2N,safApp=OpenSAF
>>>>>>>>>>>>>              saAmfSISUHAState=ACTIVE(1)
>>>>>>>>>>>>>
>>>>>>>>>>>>> TC #3: Configured SU1(Act) on PL-3 and SU2(Std) on PL-4.
>>>>>>>>>>>>> Stop SC-1, stop PL-3 and PL-4, but PL-5 is running. start
>>>>>>>>>>>>> SC-1, the same issue.
>>>>>>>>>>>>>
>>>>>>>>>>>>> TC #4: Same as TC #3, but SU3 configured on PL-5 as spare.
>>>>>>>>>>>>> SU3 doesn't get any assignment and Sg is unstable.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>> -Nagu
>>>>>>>>>>>>>
>>>>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>>>>> From: Minh Hon Chau [mailto:minh.c...@dektech.com.au]
>>>>>>>>>>>>>> Sent: 18 August 2016 05:46
>>>>>>>>>>>>>> To: hans.nordeb...@ericsson.com; Nagendra Kumar;
>> Praveen
>>>>>>>>>> Malviya;
>>>>>>>>>>>>>> gary....@dektech.com.au;
>> long.hb.ngu...@dektech.com.au;
>>>>>>>>>>>>>> minh.c...@dektech.com.au
>>>>>>>>>>>>>> Cc: opensaf-devel@lists.sourceforge.net
>>>>>>>>>>>>>> Subject: [PATCH 2 of 4] AMFND: Admin operation
>>>>>>>>>>>>>> continuation if csi completes during headless [#1725 part
>>>>>>>>>>>>>> 1] V1
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>       osaf/services/saf/amf/amfnd/di.cc             |  199
>>>>>>>>>>>>>> +++++++++++++++++--------
>>>>>>>>>>>>>>       osaf/services/saf/amf/amfnd/include/avnd_di.h |    1 +
>>>>>>>>>>>>>>       2 files changed, 134 insertions(+), 66 deletions(-)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> There're two options basically that AMFD can continue
>>>>>>>>>>>>>> admin operation wih completed csi(s)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> First: AMFD can use the sync SUSI fsm state as latest,
>>>>>>>>>>>>>> AMFD then has to explore its SUSI assignments with
>>>>>>>>>>>>>> adminStates of relevant entities to determine which SU
>>>>>>>>>>>>>> should be on call of
>>>>>> susi_success().
>>>>>>>>>>>>>> Deeper level of exploration for csi addition. It also
>>>>>>>>>>>>>> depends on SG Fsm state which is being used variously in
>>>>>>>>>>>>>> different SG
>>>>> types.
>>>>>>>>>>>>>> Second: AMFD uses the SUSI fsm state read from IMM as
>>>>>>>>>>>>>> latest, and AMFND needs to resend susi_resp messages
>> which
>>>>>>>>>>>>>> were deferred during headless so that AMFD can continue
>>>>>>>>>>>>>> the admin operation
>>>>>>>>>> sequence.
>>>>>>>>>>>>>> Both cases of csi completion [during or after] headless
>>>>>>>>>>>>>> can run in the same code flow.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> The patch buffers susi_resp_msg during headless stage and
>>>>>>>>>>>>>> resend it to AMFD after headless. There could be a chance
>>>>>>>>>>>>>> that AMFND sent out susi response message but AMFD could
>>> not
>>>>>> receive
>>>>>>>>>>>>>> or process it. This case could be seen as a defect, which
>>>>>>>>>>>>>> can be fixed by securing the result of sending susi_resp
>>>>>>>>>>>>>> message from AMFND toward
>>>>>>>>>> AMFD.
>>>>>>>>>>>>>> diff --git a/osaf/services/saf/amf/amfnd/di.cc
>>>>>>>>>>>>>> b/osaf/services/saf/amf/amfnd/di.cc
>>>>>>>>>>>>>> --- a/osaf/services/saf/amf/amfnd/di.cc
>>>>>>>>>>>>>> +++ b/osaf/services/saf/amf/amfnd/di.cc
>>>>>>>>>>>>>> @@ -805,11 +805,6 @@ uint32_t
>>>>>> avnd_di_susi_resp_send(AVND_CB
>>>>>>>>>>>>>>           if (cb->term_state ==
>>>>>>>>>>>>>> AVND_TERM_STATE_OPENSAF_SHUTDOWN_STARTED)
>>>>>>>>>>>>>>               return rc;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> -    if (cb->is_avd_down == true) {
>>>>>>>>>>>>>> -        m_AVND_SU_ALL_SI_RESET(su);
>>>>>>>>>>>>>> -        return rc;
>>>>>>>>>>>>>> -    }
>>>>>>>>>>>>>> -
>>>>>>>>>>>>>>           // should be in assignment pending state to be here
>>>>>>>>>>>>>>           osafassert(m_AVND_SU_IS_ASSIGN_PEND(su));
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> @@ -820,64 +815,76 @@ uint32_t
>>>>>>>> avnd_di_susi_resp_send(AVND_CB
>>>>>>>>>>>>>>           TRACE_ENTER2("Sending Resp su=%s, si=%s,
>>>>>>>>>>>>>> curr_state=%u, prv_state=%u", su->name.value,
>>>>>>>>>>>>>> curr_si->name.value,curr_si-
>>>>>>>>>>>>>>> curr_state,curr_si->prv_state);
>>>>>>>>>>>>>>           /* populate the susi resp msg */
>>>>>>>>>>>>>>           msg.info.avd = new AVSV_DND_MSG();
>>>>>>>>>>>>>> -        msg.type = AVND_MSG_AVD;
>>>>>>>>>>>>>> -        msg.info.avd->msg_type =
>>>>>>>>>> AVSV_N2D_INFO_SU_SI_ASSIGN_MSG;
>>>>>>>>>>>>>> -        msg.info.avd->msg_info.n2d_su_si_assign.msg_id =
>>> ++(cb-
>>>>>>>>>>>>>>> snd_msg_id);
>>>>>>>>>>>>>> -        msg.info.avd->msg_info.n2d_su_si_assign.node_id =
>> cb-
>>>>>>>>>>>>>>> node_info.nodeId;
>>>>>>>>>>>>>> -        if (si) {
>>>>>>>>>>>>>> - msg.info.avd->msg_info.n2d_su_si_assign.single_csi =
>>>>>>>>>>>>>> -                        ((si->single_csi_add_rem_in_si ==
>>>>>>>>>>>>>> AVSV_SUSI_ACT_BASE) ?
>>>>>>>>>>>>>> false : true);
>>>>>>>>>>>>>> -        }
>>>>>>>>>>>>>> -        TRACE("curr_assign_state '%u'", curr_si-
>>>>>> curr_assign_state);
>>>>>>>>>>>>>> -        msg.info.avd->msg_info.n2d_su_si_assign.msg_act =
>>>>>>>>>>>>>> -
>>> (m_AVND_SU_SI_CURR_ASSIGN_STATE_IS_ASSIGNED(curr_si)
>>>>> ||
>>>>>>>>>>>>>> -
>>> m_AVND_SU_SI_CURR_ASSIGN_STATE_IS_ASSIGNING(curr_si))
>>>>> ?
>>>>>>>>>>>>>> -                ((!curr_si->prv_state) ? AVSV_SUSI_ACT_ASGN :
>>>>>>>>>>>>>> AVSV_SUSI_ACT_MOD) : AVSV_SUSI_ACT_DEL;
>>>>>>>>>>>>>> -        msg.info.avd->msg_info.n2d_su_si_assign.su_name =
>> su-
>>>>>>>>> name;
>>>>>>>>>>>>>> -        if (si) {
>>>>>>>>>>>>>> - msg.info.avd->msg_info.n2d_su_si_assign.si_name = si-
>>>> name;
>>>>>>>>>>>>>> -                if (AVSV_SUSI_ACT_ASGN ==
>>>>>>>>>>>>>> si->single_csi_add_rem_in_si) {
>>>>>>>>>>>>>> -                        TRACE("si->curr_assign_state '%u'", 
>>>>>>>>>>>>>> curr_si-
>>>>>>>>>>>>>>> curr_assign_state);
>>>>>>>>>>>>>> - msg.info.avd->msg_info.n2d_su_si_assign.msg_act =
>>>>>>>>>>>>>> -
>>>>>>>>>>>>>>
>> (m_AVND_SU_SI_CURR_ASSIGN_STATE_IS_ASSIGNED(curr_si)
>>> ||
>>>>>>>>>>>>>> -
>>>>>>>>>>>>>>
>>> m_AVND_SU_SI_CURR_ASSIGN_STATE_IS_ASSIGNING(curr_si)) ?
>>>>>>>>>>>>>> -                                AVSV_SUSI_ACT_ASGN :
>>>>>>>>>>>>>> AVSV_SUSI_ACT_DEL;
>>>>>>>>>>>>>> -                }
>>>>>>>>>>>>>> -        }
>>>>>>>>>>>>>> -        msg.info.avd->msg_info.n2d_su_si_assign.ha_state =
>>>>>>>>>>>>>> -                (SA_AMF_HA_QUIESCING == curr_si->curr_state) ?
>>>>>>>>>>>>>> SA_AMF_HA_QUIESCED : curr_si->curr_state;
>>>>>>>>>>>>>> -        msg.info.avd->msg_info.n2d_su_si_assign.error =
>>>>>>>>>>>>>> -
>>> (m_AVND_SU_SI_CURR_ASSIGN_STATE_IS_ASSIGNED(curr_si)
>>>>> ||
>>>>>>>>>>>>>> -
>>> m_AVND_SU_SI_CURR_ASSIGN_STATE_IS_REMOVED(curr_si))
>>>>> ?
>>>>>>>>>>>>>> NCSCC_RC_SUCCESS : NCSCC_RC_FAILURE;
>>>>>>>>>>>>>> +    msg.type = AVND_MSG_AVD;
>>>>>>>>>>>>>> +    msg.info.avd->msg_type =
>>>>>>>> AVSV_N2D_INFO_SU_SI_ASSIGN_MSG;
>>>>>>>>>>>>>> +    msg.info.avd->msg_info.n2d_su_si_assign.node_id = cb-
>>>>>>>>>>>>>>> node_info.nodeId;
>>>>>>>>>>>>>> +    if (si) {
>>>>>>>>>>>>>> +        msg.info.avd->msg_info.n2d_su_si_assign.single_csi =
>>>>>>>>>>>>>> +                ((si->single_csi_add_rem_in_si ==
>>>>>>>>>>>>>> AVSV_SUSI_ACT_BASE) ? false : true);
>>>>>>>>>>>>>> +    }
>>>>>>>>>>>>>> +    TRACE("curr_assign_state '%u'", curr_si-
>>>> curr_assign_state);
>>>>>>>>>>>>>> +    msg.info.avd->msg_info.n2d_su_si_assign.msg_act =
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>
>>>>> (m_AVND_SU_SI_CURR_ASSIGN_STATE_IS_ASSIGNED(curr_si)
>>>>>> ||
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>
>>>>> m_AVND_SU_SI_CURR_ASSIGN_STATE_IS_ASSIGNING(curr_si))
>>>>>> ?
>>>>>>>>>>>>>> +                ((!curr_si->prv_state) ?
>>>>>>>>>>>>>> AVSV_SUSI_ACT_ASGN : AVSV_SUSI_ACT_MOD) :
>>>>>>>>>> AVSV_SUSI_ACT_DEL;
>>>>>>>>>>>>>> +    msg.info.avd->msg_info.n2d_su_si_assign.su_name = su-
>>>>>>> name;
>>>>>>>>>>>>>> +    if (si) {
>>>>>>>>>>>>>> +        msg.info.avd->msg_info.n2d_su_si_assign.si_name =
>>>>>>>>>>>>>> + si-
>>>>>>>>>>>>>>> name;
>>>>>>>>>>>>>> +        if (AVSV_SUSI_ACT_ASGN ==
>>>>>>>>>>>>>> + si->single_csi_add_rem_in_si)
>>>>> {
>>>>>>>>>>>>>> +            TRACE("si->curr_assign_state '%u'", curr_si-
>>>>>>>>>>>>>>> curr_assign_state);
>>>>>>>>>>>>>> +                msg.info.avd-
>>>>>>>>>>>>>>> msg_info.n2d_su_si_assign.msg_act =
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>
>>>>> (m_AVND_SU_SI_CURR_ASSIGN_STATE_IS_ASSIGNED(curr_si)
>>>>>> ||
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>
>>>>> m_AVND_SU_SI_CURR_ASSIGN_STATE_IS_ASSIGNING(curr_si))
>>>>>> ?
>>>>>>>>>>>>>> +                    AVSV_SUSI_ACT_ASGN :
>>>>>>>>>>>>>> AVSV_SUSI_ACT_DEL;
>>>>>>>>>>>>>> +        }
>>>>>>>>>>>>>> +    }
>>>>>>>>>>>>>> +    msg.info.avd->msg_info.n2d_su_si_assign.ha_state =
>>>>>>>>>>>>>> +            (SA_AMF_HA_QUIESCING == curr_si->curr_state) ?
>>>>>>>>>>>>>> SA_AMF_HA_QUIESCED : curr_si->curr_state;
>>>>>>>>>>>>>> +    msg.info.avd->msg_info.n2d_su_si_assign.error =
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>
>>>>> (m_AVND_SU_SI_CURR_ASSIGN_STATE_IS_ASSIGNED(curr_si)
>>>>>> ||
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>
>>>>> m_AVND_SU_SI_CURR_ASSIGN_STATE_IS_REMOVED(curr_si))
>>>>>> ?
>>>>>>>>>>>>>> +NCSCC_RC_SUCCESS : NCSCC_RC_FAILURE;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> -        if (msg.info.avd->msg_info.n2d_su_si_assign.msg_act
>> ==
>>>>>>>>>>>>>> AVSV_SUSI_ACT_ASGN)
>>>>>>>>>>>>>> -                osafassert(si);
>>>>>>>>>>>>>> +    if (msg.info.avd->msg_info.n2d_su_si_assign.msg_act
>>>>>>>>>>>>>> + ==
>>>>>>>>>>>>>> AVSV_SUSI_ACT_ASGN)
>>>>>>>>>>>>>> +        osafassert(si);
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> -        /* send the msg to AvD */
>>>>>>>>>>>>>> -        TRACE("Sending. msg_id'%u', node_id'%u',
>> msg_act'%u',
>>>>>>>>>>>>>> su'%s', si'%s',
>>>>>>>>>>>>>> ha_state'%u', error'%u', single_csi'%u'",
>>>>>>>>>>>>>> - msg.info.avd->msg_info.n2d_su_si_assign.msg_id,
>>>>>>>>>>>>>> msg.info.avd-
>>>>>>>>>>>>>>> msg_info.n2d_su_si_assign.node_id,
>>>>>>>>>>>>>> - msg.info.avd->msg_info.n2d_su_si_assign.msg_act,
>>>>>>>>>>>>>> msg.info.avd-
>>>>>>>>>>>>>>> msg_info.n2d_su_si_assign.su_name.value,
>>>>>>>>>>>>>> - msg.info.avd->msg_info.n2d_su_si_assign.si_name.value,
>>>>>>>>>>>>>> msg.info.avd->msg_info.n2d_su_si_assign.ha_state,
>>>>>>>>>>>>>> - msg.info.avd->msg_info.n2d_su_si_assign.error,
>>>>>>>>>>>>>> msg.info.avd-
>>>>>>>>>>>>>>> msg_info.n2d_su_si_assign.single_csi);
>>>>>>>>>>>>>> +    /* send the msg to AvD */
>>>>>>>>>>>>>> +    TRACE("Sending. msg_id'%u', node_id'%u', msg_act'%u',
>>>>>>>>>>>>>> + su'%s',
>>>>>>>>>>>>>> si'%s', ha_state'%u', error'%u', single_csi'%u'",
>>>>>>>>>>>>>> +        msg.info.avd->msg_info.n2d_su_si_assign.msg_id,
>>>>>>>>>>>>>> msg.info.avd->msg_info.n2d_su_si_assign.node_id,
>>>>>>>>>>>>>> +        msg.info.avd->msg_info.n2d_su_si_assign.msg_act,
>>>>>>>>>>>>>> msg.info.avd->msg_info.n2d_su_si_assign.su_name.value,
>>>>>>>>>>>>>> + msg.info.avd->msg_info.n2d_su_si_assign.si_name.value,
>>>>>>>>>>>>>> msg.info.avd->msg_info.n2d_su_si_assign.ha_state,
>>>>>>>>>>>>>> +        msg.info.avd->msg_info.n2d_su_si_assign.error,
>>>>>>>>>>>>>> +msg.info.avd->msg_info.n2d_su_si_assign.single_csi);
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> -        if ((su->si_list.n_nodes > 1) && (si == nullptr)) {
>>>>>>>>>>>>>> -                if (msg.info.avd-
>>>> msg_info.n2d_su_si_assign.msg_act
>>>>> ==
>>>>>>>>>>>>>> AVSV_SUSI_ACT_DEL)
>>>>>>>>>>>>>> -                        LOG_NO("Removed 'all SIs' from '%s'",
>>>>>>>>>>>>>> su->name.value);
>>>>>>>>>>>>>> +    if ((su->si_list.n_nodes > 1) && (si == nullptr)) {
>>>>>>>>>>>>>> +        if
>>>>>>>>>>>>>> + (msg.info.avd->msg_info.n2d_su_si_assign.msg_act
>>>>>>>>>>>>>> + ==
>>>>>>>>>>>>>> AVSV_SUSI_ACT_DEL)
>>>>>>>>>>>>>> +            LOG_NO("Removed 'all SIs' from '%s'", su-
>>>>>>>>>>>>>>> name.value);
>>>>>>>>>>>>>> -                if (msg.info.avd-
>>>> msg_info.n2d_su_si_assign.msg_act
>>>>> ==
>>>>>>>>>>>>>> AVSV_SUSI_ACT_MOD)
>>>>>>>>>>>>>> -                        LOG_NO("Assigned 'all SIs' %s of '%s'",
>>>>>>>>>>>>>> -                               ha_state[msg.info.avd-
>>>>>>>>>>>>>>> msg_info.n2d_su_si_assign.ha_state],
>>>>>>>>>>>>>> -                               su->name.value);
>>>>>>>>>>>>>> -        }
>>>>>>>>>>>>>> +        if
>>>>>>>>>>>>>> + (msg.info.avd->msg_info.n2d_su_si_assign.msg_act
>>>>>>>>>>>>>> + ==
>>>>>>>>>>>>>> AVSV_SUSI_ACT_MOD)
>>>>>>>>>>>>>> +            LOG_NO("Assigned 'all SIs' %s of '%s'",
>>>>>>>>>>>>>> +                    ha_state[msg.info.avd-
>>>>>>>>>>>>>>> msg_info.n2d_su_si_assign.ha_state],
>>>>>>>>>>>>>> +                    su->name.value);
>>>>>>>>>>>>>> +    }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> -        rc = avnd_di_msg_send(cb, &msg);
>>>>>>>>>>>>>> -        if (NCSCC_RC_SUCCESS == rc)
>>>>>>>>>>>>>> -                msg.info.avd = 0;
>>>>>>>>>>>>>> -
>>>>>>>>>>>>>> -        /* we have completed the SU SI msg processing */
>>>>>>>>>>>>>> -        if (su_assign_state_is_stable(su))
>>>>>>>>>>>>>> -                m_AVND_SU_ASSIGN_PEND_RESET(su);
>>>>>>>>>>>>>> -        m_AVND_SU_ALL_SI_RESET(su);
>>>>>>>>>>>>>> +    if (cb->is_avd_down == true) {
>>>>>>>>>>>>>> +        // We are in headless, buffer this msg
>>>>>>>>>>>>>> +        msg.info.avd->msg_info.n2d_su_si_assign.msg_id = 0;
>>>>>>>>>>>>>> +        if (avnd_diq_rec_add(cb, &msg) == nullptr) {
>>>>>>>>>>>>>> +            rc = NCSCC_RC_FAILURE;
>>>>>>>>>>>>>> +        }
>>>>>>>>>>>>>> +        m_AVND_SU_ALL_SI_RESET(su);
>>>>>>>>>>>>>> +        LOG_NO("avnd_di_susi_resp_send() deferred as AMF
>>>>>>>>>>>>>> director is offline");
>>>>>>>>>>>>>> +    } else {
>>>>>>>>>>>>>> +        // We are in normal cluster, send msg to director
>>>>>>>>>>>>>> +        msg.info.avd->msg_info.n2d_su_si_assign.msg_id =
>>>>>>>>>>>>>> + ++(cb-
>>>>>>>>>>>>>>> snd_msg_id);
>>>>>>>>>>>>>> +        /* send the msg to AvD */
>>>>>>>>>>>>>> +        rc = avnd_di_msg_send(cb, &msg);
>>>>>>>>>>>>>> +        if (NCSCC_RC_SUCCESS == rc)
>>>>>>>>>>>>>> +            msg.info.avd = 0;
>>>>>>>>>>>>>> +        /* we have completed the SU SI msg processing */
>>>>>>>>>>>>>> +        if (su_assign_state_is_stable(su)) {
>>>>>>>>>>>>>> +            m_AVND_SU_ASSIGN_PEND_RESET(su);
>>>>>>>>>>>>>> +        }
>>>>>>>>>>>>>> +        m_AVND_SU_ALL_SI_RESET(su);
>>>>>>>>>>>>>> +    }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>           /* free the contents of avnd message */
>>>>>>>>>>>>>>           avnd_msg_content_free(cb, &msg); @@ -1256,14
>>>>>>>>>>>>>> +1263,7
>>>>>> @@
>>>>>>>>>> void
>>>>>>>>>>>>>> avnd_diq_rec_del(AVND_CB *cb, AVND_
>>>>>>>>>>>>>>           /* stop the AvD msg response timer */
>>>>>>>>>>>>>>           if (m_AVND_TMR_IS_ACTIVE(rec->resp_tmr)) {
>>>>>>>>>>>>>>               m_AVND_TMR_MSG_RESP_STOP(cb, *rec);
>>>>>>>>>>>>>> -        // Resend msgs from queue because amfd dropped
>> during
>>>>>>>>>>>>>> sync
>>>>>>>>>>>>>> -        if ((cb->dnd_list.head != nullptr)) {
>>>>>>>>>>>>>> -            TRACE("retransmit message to amfd");
>>>>>>>>>>>>>> -            AVND_DND_MSG_LIST *pending_rec = 0;
>>>>>>>>>>>>>> -            for (pending_rec = cb->dnd_list.head; pending_rec !=
>>>>>>>>>>>>>> nullptr; pending_rec = pending_rec->next) {
>>>>>>>>>>>>>> -                avnd_diq_rec_send(cb, pending_rec);
>>>>>>>>>>>>>> -            }
>>>>>>>>>>>>>> -        }
>>>>>>>>>>>>>> +        avnd_diq_rec_send_buffered_msg(cb);
>>>>>>>>>>>>>>               /* resend pg start track */
>>>>>>>>>>>>>>               avnd_di_resend_pg_start_track(cb);
>>>>>>>>>>>>>>           }
>>>>>>>>>>>>>> @@ -1276,6 +1276,73 @@ void avnd_diq_rec_del(AVND_CB
>>>>> *cb,
>>>>>>>>>>> AVND_
>>>>>>>>>>>>>>           TRACE_LEAVE();
>>>>>>>>>>>>>>           return;
>>>>>>>>>>>>>>       }
>>>>>>>>>>>>>>
>> +/************************************************************
>>>>>>>>>>>>>> ****************
>>>>>>>>>>>>>> +  Name          : avnd_diq_rec_send_buffered_msg
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>> +  Description   : Resend buffered msg
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>> +  Arguments     : cb  - ptr to the AvND control block
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>> +  Return Values : None.
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>> +  Notes         : None.
>>>>>>>>>>>>>>
>> +*************************************************************
>>>>>>>>>>>>>> **********
>>>>>>>>>>>>>> +*******/ void avnd_diq_rec_send_buffered_msg(AVND_CB
>>>>> *cb)
>>>>>> {
>>>>>>>>>>>>>> +    TRACE_ENTER();
>>>>>>>>>>>>>> +    // Resend msgs from queue because amfnd dropped
>>>>>>>>>>>>>> + during
>>>>>>>>>> headless
>>>>>>>>>>>>>> +    // or headless-synchronization
>>>>>>>>>>>>>> +    if ((cb->dnd_list.head != nullptr)) {
>>>>>>>>>>>>>> +        AVND_DND_MSG_LIST *pending_rec = 0;
>>>>>>>>>>>>>> +        TRACE("Attach msg_id of buffered msg");
>>>>>>>>>>>>>> +        bool found = true;
>>>>>>>>>>>>>> +        while (found) {
>>>>>>>>>>>>>> +            found = false;
>>>>>>>>>>>>>> +            for (pending_rec = cb->dnd_list.head;
>>>>>>>>>>>>>> + pending_rec !=
>>>>>>>>>>>>>> nullptr; pending_rec = pending_rec->next) {
>>>>>>>>>>>>>> +                if (pending_rec->msg.type ==
>>>>>>>>>>>>>> AVND_MSG_AVD) {
>>>>>>>>>>>>>> +                    // At this moment, only oper_state
>>>>>>>>>>>>>> msg needs to report to director
>>>>>>>>>>>>>> +                    if (pending_rec->msg.info.avd-
>>>>>>>>>>>>>>> msg_type == AVSV_N2D_INFO_SU_SI_ASSIGN_MSG &&
>>>>>>>>>>>>>> +                        pending_rec->msg.info.avd-
>>>>>>>>>>>>>>> msg_info.n2d_su_si_assign.msg_id == 0) {
>>>>>>>>>>>>>> +                        m_AVND_DIQ_REC_POP(cb,
>>>>>>>>>>>>>> pending_rec); #if 0
>>>>>>>>>>>>>> +                        // only resend if this SUSI
>>>>>>>>>>>>>> does exist
>>>>>>>>>>>>>> +                        AVND_SU *su =
>>>>>>>>>>>>>> m_AVND_SUDB_REC_GET(cb->sudb,
>>>>>>>>>>>>>> +                                pending_rec-
>>>>>>>>>>>>>>> msg.info.avd->msg_info.n2d_su_si_assign.su_name);
>>>>>>>>>>>>>> +                        if (su != nullptr && su-
>>>>>>>>>>>>>>> si_list.n_nodes > 0) { #endif
>>>>>>>>>>>>>> +                            pending_rec-
>>>>>>>>>>>>>>> msg.info.avd->msg_info.n2d_su_si_assign.msg_id =
>>>>>>>>>>>>>>> ++(cb->snd_msg_id);
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>         m_AVND_DIQ_REC_PUSH(cb, pending_rec);
>>>>>>>>>>>>>> +                            LOG_NO("Found and
>>>>>>>>>>>>>> resend buffered su_si_assign msg for SU:'%s', "
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>         "SI:'%s', ha_state:'%u', msg_act:'%u', single_csi:'%u', "
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>         "error:'%u', msg_id:'%u'",
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>         pending_rec->msg.info.avd-
>>>>>>>>>>>>>>> msg_info.n2d_su_si_assign.su_name.value,
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>         pending_rec->msg.info.avd-
>>>>>>>>>>>>>>> msg_info.n2d_su_si_assign.si_name.value,
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> pending_rec->msg.info.avd-
>>>>>>> msg_info.n2d_su_si_assign.ha_state,
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> pending_rec->msg.info.avd-
>>>>>> msg_info.n2d_su_si_assign.msg_act,
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> pending_rec->msg.info.avd-
>>>>>>> msg_info.n2d_su_si_assign.single_csi
>>>>>>>>>>>>>> ,
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> pending_rec->msg.info.avd-
>>>> msg_info.n2d_su_si_assign.error,
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> pending_rec->msg.info.avd-
>>>>>> msg_info.n2d_su_si_assign.msg_id);
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>> +#if 0
>>>>>>>>>>>>>> +                        } else {
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>         avnd_msg_content_free(cb, &pending_rec->msg);
>>>>>>>>>>>>>> +                            delete pending_rec;
>>>>>>>>>>>>>> +                            pending_rec = cb-
>>>>>>>>>>>>>>> dnd_list.head;
>>>>>>>>>>>>>> +                        } #endif
>>>>>>>>>>>>>> +                        found = true;
>>>>>>>>>>>>>> +                    }
>>>>>>>>>>>>>> +                }
>>>>>>>>>>>>>> +            }
>>>>>>>>>>>>>> +        }
>>>>>>>>>>>>>> +        TRACE("retransmit message to amfd");
>>>>>>>>>>>>>> +         for (pending_rec = cb->dnd_list.head;
>>>>>>>>>>>>>> +pending_rec != nullptr;
>>>>>>>>>>>>>> pending_rec = pending_rec->next) {
>>>>>>>>>>>>>> +             avnd_diq_rec_send(cb, pending_rec);
>>>>>>>>>>>>>> +         }
>>>>>>>>>>>>>> +    }
>>>>>>>>>>>>>> +    TRACE_LEAVE();
>>>>>>>>>>>>>> +    return;
>>>>>>>>>>>>>> +}
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>> /*************************************************************
>>>>>>>>>>>>>> ***************
>>>>>>>>>>>>>>         Name          : avnd_diq_rec_send
>>>>>>>>>>>>>> diff --git a/osaf/services/saf/amf/amfnd/include/avnd_di.h
>>>>>>>>>>>>>> b/osaf/services/saf/amf/amfnd/include/avnd_di.h
>>>>>>>>>>>>>> --- a/osaf/services/saf/amf/amfnd/include/avnd_di.h
>>>>>>>>>>>>>> +++ b/osaf/services/saf/amf/amfnd/include/avnd_di.h
>>>>>>>>>>>>>> @@ -79,6 +79,7 @@ void avnd_di_msg_ack_process(struct
>>>>> avnd
>>>>>>>> void
>>>>>>>>>>>>>> avnd_diq_del(struct avnd_cb_tag *);  AVND_DND_MSG_LIST
>>>>>>>>>>>>>> *avnd_diq_rec_add(struct avnd_cb_tag *cb, AVND_MSG
>>> *msg);
>>>>>> void
>>>>>>>>>>>>>> avnd_diq_rec_del(struct avnd_cb_tag *cb,
>>>>> AVND_DND_MSG_LIST
>>>>>>>>>> *rec);
>>>>>>>>>>>>>> +void avnd_diq_rec_send_buffered_msg(struct avnd_cb_tag
>>>>> *cb);
>>>>>>>>>>>>>>       uint32_t avnd_diq_rec_send(struct avnd_cb_tag *cb,
>>>>>>>>>>>>>> AVND_DND_MSG_LIST *rec);  uint32_t
>>>>>>>> avnd_di_reg_su_rsp_snd(struct
>>>>>>>>>>>>>> avnd_cb_tag *cb, SaNameT *su_name, uint32_t ret_code);
>>>>>>>>>>>>>> uint32_t avnd_di_ack_nack_msg_send(struct avnd_cb_tag
>>> *cb,
>>>>>>>>>>>>>> uint32_t rcv_id, uint32_t view_num);
>>>>>>>>>> --------------------------------------------------------------
>>>>>>>>>> --
>>>>>>>>>> -
>>>>>>>>>> --
>>>>>>>>>> --
>>>>>>>>>> --------- _______________________________________________
>>>>>>>>>> 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
>> ------------------------------------------------------------------------------
>> _______________________________________________
>> Opensaf-devel mailing list
>> Opensaf-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/opensaf-devel


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to