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
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel