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