Update msgd and msgnd to use CLM B.04.01.
---
 src/msg/Makefile.am       |  2 --
 src/msg/common/mqsv_def.h |  5 +++++
 src/msg/msgd/mqd_api.c    | 15 ++++++++-------
 src/msg/msgd/mqd_clm.c    | 17 +++++++++++++++--
 src/msg/msgd/mqd_clm.h    | 10 ++++++++--
 src/msg/msgnd/mqnd_init.c | 18 +++++++++---------
 src/msg/msgnd/mqnd_proc.c | 17 +++++++++++++++--
 src/msg/msgnd/mqnd_proc.h | 10 ++++++++--
 8 files changed, 68 insertions(+), 26 deletions(-)

diff --git a/src/msg/Makefile.am b/src/msg/Makefile.am
index dd282504e..d77251609 100644
--- a/src/msg/Makefile.am
+++ b/src/msg/Makefile.am
@@ -135,7 +135,6 @@ dist_pkgsysconf_DATA += \
        src/msg/msgnd/msgnd.conf
 
 bin_osafmsgnd_CPPFLAGS = \
-       -DSA_CLM_B01=1 \
        -DNCS_MQND=1 -DASAPi_DEBUG=1 \
        $(AM_CPPFLAGS)
 
@@ -166,7 +165,6 @@ bin_osafmsgnd_LDADD = \
        lib/libopensaf_core.la
 
 bin_osafmsgd_CPPFLAGS = \
-       -DSA_CLM_B01=1 \
        -DNCS_MQD=1 -DASAPi_DEBUG=1 \
        $(AM_CPPFLAGS)
 
diff --git a/src/msg/common/mqsv_def.h b/src/msg/common/mqsv_def.h
index bfeb8bc71..de805d6cf 100644
--- a/src/msg/common/mqsv_def.h
+++ b/src/msg/common/mqsv_def.h
@@ -80,6 +80,11 @@ typedef struct mqsv_dsend_info {
   amf_ver.majorVersion = 0x01;      \
   amf_ver.minorVersion = 0x01;
 
+#define m_MQSV_GET_CLM_VER(clm_ver) \
+  clm_ver.releaseCode = 'B';        \
+  clm_ver.majorVersion = 0x04;      \
+  clm_ver.minorVersion = 0x01;
+
 #define m_MQSV_IS_ACKFLAGS_NOT_VALID(ackFlags) \
   ((ackFlags) && ((ackFlags) != SA_MSG_MESSAGE_DELIVERED_ACK))
 
diff --git a/src/msg/msgd/mqd_api.c b/src/msg/msgd/mqd_api.c
index 83d5c2198..ee92f8375 100644
--- a/src/msg/msgd/mqd_api.c
+++ b/src/msg/msgd/mqd_api.c
@@ -113,17 +113,17 @@ static SaAisErrorT mqd_clm_init(MQD_CB *cb)
 
        do {
                SaVersionT clm_version;
-               SaClmCallbacksT mqd_clm_cbk;
+               SaClmCallbacksT_4 mqd_clm_cbk;
 
-               m_MQSV_GET_AMF_VER(clm_version);
+               m_MQSV_GET_CLM_VER(clm_version);
                mqd_clm_cbk.saClmClusterNodeGetCallback = NULL;
                mqd_clm_cbk.saClmClusterTrackCallback =
                    mqd_clm_cluster_track_callback;
 
                saErr =
-                   saClmInitialize(&cb->clm_hdl, &mqd_clm_cbk, &clm_version);
+                   saClmInitialize_4(&cb->clm_hdl, &mqd_clm_cbk, &clm_version);
                if (saErr != SA_AIS_OK) {
-                       LOG_ER("saClmInitialize failed with error %u",
+                       LOG_ER("saClmInitialize_4 failed with error %u",
                               (unsigned)saErr);
                        break;
                }
@@ -137,10 +137,11 @@ static SaAisErrorT mqd_clm_init(MQD_CB *cb)
                }
                TRACE_1("saClmSelectionObjectGet success");
 
-               saErr =
-                   saClmClusterTrack(cb->clm_hdl, SA_TRACK_CHANGES_ONLY, NULL);
+               saErr = saClmClusterTrack_4(cb->clm_hdl,
+                               SA_TRACK_CHANGES_ONLY,
+                               NULL);
                if (SA_AIS_OK != saErr) {
-                       LOG_ER("saClmClusterTrack failed with error %u",
+                       LOG_ER("saClmClusterTrack_4 failed with error %u",
                               (unsigned)saErr);
                        break;
                }
diff --git a/src/msg/msgd/mqd_clm.c b/src/msg/msgd/mqd_clm.c
index 41d9bcf15..ce285283c 100644
--- a/src/msg/msgd/mqd_clm.c
+++ b/src/msg/msgd/mqd_clm.c
@@ -39,8 +39,14 @@ extern MQDLIB_INFO gl_mqdinfo;
  *
  
******************************************************************************************/
 void mqd_clm_cluster_track_callback(
-    const SaClmClusterNotificationBufferT *notificationBuffer,
-    SaUint32T numberOfMembers, SaAisErrorT error)
+       const SaClmClusterNotificationBufferT_4 *notificationBuffer,
+       SaUint32T numberOfMembers,
+       SaInvocationT invocation,
+       const SaNameT *rootCauseEntity,
+       const SaNtfCorrelationIdsT *correlationIds,
+       SaClmChangeStepT step,
+       SaTimeT timeSupervision,
+       SaAisErrorT error)
 {
        MQD_CB *pMqd = 0;
        SaClmNodeIdT node_id;
@@ -49,6 +55,11 @@ void mqd_clm_cluster_track_callback(
        TRACE_ENTER2("cluster change=%d",
                     notificationBuffer->notification[counter].clusterChange);
 
+       if (error != SA_AIS_OK) {
+               LOG_ER("mqd_clm_cluster_track_callback error: %i", error);
+               goto done;
+       }
+
        /* Get the Controll block */
        pMqd = ncshm_take_hdl(NCS_SERVICE_ID_MQD, gl_mqdinfo.inst_hdl);
        if (!pMqd) {
@@ -116,6 +127,8 @@ void mqd_clm_cluster_track_callback(
                }
        }
        ncshm_give_hdl(pMqd->hdl);
+
+done:
        TRACE_LEAVE();
 }
 
diff --git a/src/msg/msgd/mqd_clm.h b/src/msg/msgd/mqd_clm.h
index 0bb42dbc2..1c06dc641 100644
--- a/src/msg/msgd/mqd_clm.h
+++ b/src/msg/msgd/mqd_clm.h
@@ -33,8 +33,14 @@
 #include <saClm.h>
 
 void mqd_clm_cluster_track_callback(
-    const SaClmClusterNotificationBufferT *notificationBuffer,
-    SaUint32T numberOfMembers, SaAisErrorT error);
+       const SaClmClusterNotificationBufferT_4 *notificationBuffer,
+       SaUint32T numberOfMembers,
+       SaInvocationT invocation,
+       const SaNameT *rootCauseEntity,
+       const SaNtfCorrelationIdsT *correlationIds,
+       SaClmChangeStepT step,
+       SaTimeT timeSupervision,
+       SaAisErrorT error);
 void mqd_del_node_down_info(MQD_CB *pMqd, NODE_ID nodeid);
 
 #endif  // MSG_MSGD_MQD_CLM_H_
diff --git a/src/msg/msgnd/mqnd_init.c b/src/msg/msgnd/mqnd_init.c
index b63de566f..adf14ff17 100644
--- a/src/msg/msgnd/mqnd_init.c
+++ b/src/msg/msgnd/mqnd_init.c
@@ -177,8 +177,8 @@ static uint32_t mqnd_lib_init(MQSV_CREATE_INFO *info)
        SaAmfHealthcheckKeyT healthy;
        char *health_key = NULL;
        SaAisErrorT amf_error;
-       SaClmCallbacksT clm_cbk;
-       SaClmClusterNodeT cluster_node;
+       SaClmCallbacksT_4 clm_cbk;
+       SaClmClusterNodeT_4 cluster_node;
        SaVersionT clm_version;
        char str_vector[10] = "";
        int fd;
@@ -310,20 +310,20 @@ static uint32_t mqnd_lib_init(MQSV_CREATE_INFO *info)
 
        /* B301 changes */
 
-       m_MQSV_GET_AMF_VER(clm_version);
+       m_MQSV_GET_CLM_VER(clm_version);
        clm_cbk.saClmClusterNodeGetCallback = NULL;
        clm_cbk.saClmClusterTrackCallback = mqnd_clm_cluster_track_cbk;
 
-       rc = saClmInitialize(&cb->clm_hdl, &clm_cbk, &clm_version);
+       rc = saClmInitialize_4(&cb->clm_hdl, &clm_cbk, &clm_version);
        if (rc != SA_AIS_OK) {
-               LOG_ER("saClmInitialize failed with return code %d", rc);
+               LOG_ER("saClmInitialize_4 failed with return code %d", rc);
                goto mqnd_mds_fail;
        }
 
-       rc = saClmClusterNodeGet(cb->clm_hdl, SA_CLM_LOCAL_NODE_ID,
+       rc = saClmClusterNodeGet_4(cb->clm_hdl, SA_CLM_LOCAL_NODE_ID,
                                 MQND_CLM_API_TIMEOUT, &cluster_node);
        if (rc != SA_AIS_OK) {
-               LOG_ER("saClmClusterNodeGet failed with return code %d", rc);
+               LOG_ER("saClmClusterNodeGet_4 failed with return code %d", rc);
                goto mqnd_clm_fail;
        }
 
@@ -793,10 +793,10 @@ void mqnd_main_process(uint32_t hdl)
        fds[FD_IMM].fd = cb->imm_sel_obj;
        fds[FD_IMM].events = POLLIN;
 
-       if (saClmClusterTrack(cb->clm_hdl,
+       if (saClmClusterTrack_4(cb->clm_hdl,
                              (SA_TRACK_CURRENT | SA_TRACK_CHANGES),
                              NULL) != SA_AIS_OK) {
-               LOG_ER("saClmClusterTrack Failed");
+               LOG_ER("saClmClusterTrack_4 Failed");
                return;
        }
 
diff --git a/src/msg/msgnd/mqnd_proc.c b/src/msg/msgnd/mqnd_proc.c
index 3205d714b..7f2ee7d87 100644
--- a/src/msg/msgnd/mqnd_proc.c
+++ b/src/msg/msgnd/mqnd_proc.c
@@ -1446,13 +1446,25 @@ uint32_t mqnd_send_mqp_ulink_rsp(MQND_CB *cb, 
MQSV_SEND_INFO *sinfo,
  *
  
******************************************************************************************/
 void mqnd_clm_cluster_track_cbk(
-    const SaClmClusterNotificationBufferT *notificationBuffer,
-    SaUint32T numberOfMembers, SaAisErrorT error)
+       const SaClmClusterNotificationBufferT_4 *notificationBuffer,
+       SaUint32T numberOfMembers,
+       SaInvocationT invocation,
+       const SaNameT *rootCauseEntity,
+       const SaNtfCorrelationIdsT *correlationIds,
+       SaClmChangeStepT step,
+       SaTimeT timeSupervision,
+       SaAisErrorT error)
 {
        MQND_CB *cb;
        uint32_t counter = 0;
        uint32_t cb_hdl = m_MQND_GET_HDL();
 
+       if (error != SA_AIS_OK) {
+               LOG_ER("mqnd_clm_cluster_track_cbk failed: %i", error);
+               goto done;
+       }
+
+
        /* Get the CB from the handle */
        cb = ncshm_take_hdl(NCS_SERVICE_ID_MQND, cb_hdl);
 
@@ -1493,6 +1505,7 @@ void mqnd_clm_cluster_track_cbk(
        /* Return the Handle */
        ncshm_give_hdl(cb_hdl);
 
+done:
        return;
 }
 
diff --git a/src/msg/msgnd/mqnd_proc.h b/src/msg/msgnd/mqnd_proc.h
index 03a5db2af..acb55d22a 100644
--- a/src/msg/msgnd/mqnd_proc.h
+++ b/src/msg/msgnd/mqnd_proc.h
@@ -157,7 +157,13 @@ uint32_t mqnd_fill_queue_from_transfered_buffer(
     MQND_CB *cb, MQND_QUEUE_NODE *qnode, MQP_TRANSFERQ_RSP *transfer_rsp);
 
 void mqnd_clm_cluster_track_cbk(
-    const SaClmClusterNotificationBufferT *notificationBuffer,
-    SaUint32T numberOfMembers, SaAisErrorT error);
+       const SaClmClusterNotificationBufferT_4 *notificationBuffer,
+       SaUint32T numberOfMembers,
+       SaInvocationT invocation,
+       const SaNameT *rootCauseEntity,
+       const SaNtfCorrelationIdsT *correlationIds,
+       SaClmChangeStepT step,
+       SaTimeT timeSupervision,
+       SaAisErrorT error);
 
 #endif  // MSG_MSGND_MQND_PROC_H_
-- 
2.13.6


------------------------------------------------------------------------------
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