Some questions about the amfd CLM design which is not very clear.

Standby amfd at failover starts CLM tracking (deep down in 
avd_sg_2n_susi_sucss_sg_reln). It starts tracking with 
SA_TRACK_CURRENT. The reason for this seems to be to add the AMF node in a tree 
based on nodeid coming from the CLM 
node. This causes the CLM callback which in this case sends the pres state 
messages.

Could you explain the use case for calling clm_node_join_complete in both 
(JOINED & NO_CHANGE) cases?

If it is unnecessary in the NO_CHANGE case an alternative solution could be:

diff --git a/osaf/services/saf/amf/amfd/clm.cc 
b/osaf/services/saf/amf/amfd/clm.cc
--- a/osaf/services/saf/amf/amfd/clm.cc
+++ b/osaf/services/saf/amf/amfd/clm.cc
@@ -343,7 +343,8 @@ static void clm_track_cb(const SaClmClus
                                         else {
                                                 
m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, node, AVSV_CKPT_AVD_NODE_CONFIG);
                                         }
-                                       if (node->node_state == 
AVD_AVND_STATE_PRESENT) {
+                                       if ((notifItem->clusterChange == 
SA_CLM_NODE_JOINED) &&
+                                                       (node->node_state == 
AVD_AVND_STATE_PRESENT)) {
                                                 TRACE("Node already up and 
configured");
                                                 /* now try to instantiate all 
the SUs that need to be */
                                                 clm_node_join_complete(node);



Thanks,
Hans

On 10/30/2013 12:07 PM, nagendr...@oracle.com wrote:
>   osaf/services/saf/amf/amfd/clm.cc |  3 ++-
>   1 files changed, 2 insertions(+), 1 deletions(-)
>
>
> diff --git a/osaf/services/saf/amf/amfd/clm.cc 
> b/osaf/services/saf/amf/amfd/clm.cc
> --- a/osaf/services/saf/amf/amfd/clm.cc
> +++ b/osaf/services/saf/amf/amfd/clm.cc
> @@ -51,7 +51,8 @@ static void clm_node_join_complete(AVD_A
>                                       (node->node_state == 
> AVD_AVND_STATE_NCS_INIT)) {
>                               if ((su->sg_of_su->saAmfSGAdminState != 
> SA_AMF_ADMIN_LOCKED_INSTANTIATION) &&
>                                               (su->saAmfSUOperState == 
> SA_AMF_OPERATIONAL_ENABLED) &&
> -                                             (su->saAmfSUAdminState != 
> SA_AMF_ADMIN_LOCKED_INSTANTIATION)) {
> +                                             (su->saAmfSUAdminState != 
> SA_AMF_ADMIN_LOCKED_INSTANTIATION) &&
> +                                             (su->saAmfSUPresenceState == 
> SA_AMF_PRESENCE_UNINSTANTIATED)) {
>                                       /* When the SU will instantiate then 
> prescence state change message will come
>                                          and so store the callback parameters 
> to send response later on. */
>                                       if 
> (su->sg_of_su->saAmfSGNumPrefInserviceSUs >
>
>

------------------------------------------------------------------------------
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to