osaf/libs/common/cpsv/cpsv_evt.c | 494 +++++++++++++++++++++++++++++-
osaf/libs/common/cpsv/include/cpsv_evt.h | 23 +
osaf/services/saf/cpsv/cpd/cpd_mds.c | 84 ++++-
osaf/services/saf/cpsv/cpnd/cpnd_mds.c | 84 ++++-
4 files changed, 657 insertions(+), 28 deletions(-)
New messages supporting extended SaNameT are introduce. Encoding and decoding
funtions for them are also included.
diff --git a/osaf/libs/common/cpsv/cpsv_evt.c b/osaf/libs/common/cpsv/cpsv_evt.c
--- a/osaf/libs/common/cpsv/cpsv_evt.c
+++ b/osaf/libs/common/cpsv/cpsv_evt.c
@@ -30,11 +30,14 @@
#include "cpsv.h"
#include "cpa_tmr.h"
+#include "osaf_extended_name.h"
FUNC_DECLARATION(CPSV_CKPT_DATA);
static SaCkptSectionIdT *cpsv_evt_dec_sec_id(NCS_UBAID *i_ub, uint32_t svc_id);
static uint32_t cpsv_evt_enc_sec_id(NCS_UBAID *o_ub, SaCkptSectionIdT *sec_id);
static void cpsv_convert_sec_id_to_string(char *sec_id_str, SaCkptSectionIdT
*section_id);
+static uint32_t cpsv_encode_extended_name_flat(NCS_UBAID *uba, SaNameT *name);
+static uint32_t cpsv_decode_extended_name_flat(NCS_UBAID *uba, SaNameT *name);
const char *cpa_evt_str[] = {
"STRING_0",
@@ -258,6 +261,13 @@ char* cpsv_evt_str(CPSV_EVT *evt, char *
info->client_hdl, info->ckpt_name.value);
break;
}
+ case CPND_EVT_A2ND_CKPT_OPEN_2:
+ {
+ CPSV_A2ND_OPEN_REQ *info = &evt->info.cpnd.info.openReq;
+ snprintf(o_evt_str, len,
"CPND_EVT_A2ND_CKPT_OPEN_2(hdl=%llu, %s)",
+ info->client_hdl,
osaf_extended_name_borrow(&info->ckpt_name));
+ break;
+ }
case CPND_EVT_A2ND_CKPT_CLOSE:
{
CPSV_A2ND_CKPT_CLOSE *info =
&evt->info.cpnd.info.closeReq;
@@ -271,6 +281,12 @@ char* cpsv_evt_str(CPSV_EVT *evt, char *
snprintf(o_evt_str, len,
"CPND_EVT_A2ND_CKPT_UNLINK(%s)", info->ckpt_name.value);
break;
}
+ case CPND_EVT_A2ND_CKPT_UNLINK_2:
+ {
+ CPSV_A2ND_CKPT_UNLINK *info =
&evt->info.cpnd.info.ulinkReq;
+ snprintf(o_evt_str, len,
"CPND_EVT_A2ND_CKPT_UNLINK_2(%s)", osaf_extended_name_borrow(&info->ckpt_name));
+ break;
+ }
case CPND_EVT_A2ND_CKPT_RDSET:
{
CPSV_A2ND_RDSET *info = &evt->info.cpnd.info.rdsetReq;
@@ -513,12 +529,33 @@ char* cpsv_evt_str(CPSV_EVT *evt, char *
case CPND_EVT_D2ND_CKPT_CREATE:
{
CPSV_D2ND_CKPT_CREATE *info =
&evt->info.cpnd.info.ckpt_create;
- snprintf(o_evt_str, len, "[%llu]
CPND_EVT_D2ND_CKPT_CREATE(%s, create_rep=%s, active=0x%X)",
- info->ckpt_info.ckpt_id, info->ckpt_name.value,
+ snprintf(o_evt_str, len, "[%llu]
CPND_EVT_D2ND_CKPT_CREATE(%s, create_rep=%s, is_act=%s, active=0x%X,
dest_cnt=%d)",
+ info->ckpt_info.ckpt_id,
osaf_extended_name_borrow(&info->ckpt_name),
info->ckpt_info.ckpt_rep_create ? "true" :
"false",
-
m_NCS_NODE_ID_FROM_MDS_DEST(info->ckpt_info.active_dest));
+ info->ckpt_info.is_active_exists ? "true" :
"false",
+
m_NCS_NODE_ID_FROM_MDS_DEST(info->ckpt_info.active_dest),
+ info->ckpt_info.dest_cnt);
break;
}
+ case CPND_EVT_D2ND_CKPT_CREATE_2:
+ {
+ CPSV_D2ND_CKPT_CREATE *info =
&evt->info.cpnd.info.ckpt_create;
+ snprintf(o_evt_str, len, "[%llu]
CPND_EVT_D2ND_CKPT_CREATE_2(%s, create_rep=%s, is_act=%s, active=0x%X,
dest_cnt=%d)",
+ info->ckpt_info.ckpt_id,
osaf_extended_name_borrow(&info->ckpt_name),
+ info->ckpt_info.ckpt_rep_create ? "true" :
"false",
+ info->ckpt_info.is_active_exists ? "true" :
"false",
+
m_NCS_NODE_ID_FROM_MDS_DEST(info->ckpt_info.active_dest),
+ info->ckpt_info.dest_cnt);
+
+ SaCkptCheckpointCreationAttributesT *attr =
&info->ckpt_info.attributes;
+ TRACE("mSecS=%lld, flags=%d, mSec=%d, mSecIdS=%lld,
ret=%lld, ckptS=%lld", attr->maxSectionSize,
+ attr->creationFlags, attr->maxSections,
attr->maxSectionIdSize, attr->retentionDuration,
+ attr->checkpointSize);
+ for (int i = 0; i < info->ckpt_info.dest_cnt; i++)
+ TRACE("dest[%d] = 0x%" PRIX64 " ", i,
info->ckpt_info.dest_list[i].dest);
+ break;
+ }
+
case CPND_EVT_D2ND_CKPT_DESTROY:
{
snprintf(o_evt_str, len, "[%llu]
CPND_EVT_D2ND_CKPT_DESTROY", evt->info.cpnd.info.ckpt_destroy.ckpt_id);
@@ -612,6 +649,13 @@ char* cpsv_evt_str(CPSV_EVT *evt, char *
info->client_hdl, info->ckpt_name.value);
break;
}
+ case CPND_EVT_A2ND_CKPT_LIST_UPDATE_2:
+ {
+ CPSV_A2ND_CKPT_LIST_UPDATE *info =
&evt->info.cpnd.info.ckptListUpdate;
+ snprintf(o_evt_str, len,
"CPND_EVT_A2ND_CKPT_LIST_UPDATE_2(hdl=%llu, %s)",
+ info->client_hdl,
osaf_extended_name_borrow(&info->ckpt_name));
+ break;
+ }
case CPND_EVT_A2ND_ARRIVAL_CB_UNREG:
snprintf(o_evt_str, len,
"CPND_EVT_A2ND_ARRIVAL_CB_UNREG(hdl=%llu)",
evt->info.cpnd.info.arr_ntfy.client_hdl);
@@ -803,15 +847,35 @@ char* cpsv_evt_str(CPSV_EVT *evt, char *
case CPD_EVT_ND2D_CKPT_CREATE:
{
CPSV_ND2D_CKPT_CREATE *info =
&evt->info.cpd.info.ckpt_create;
- snprintf(o_evt_str, len, "CPD_EVT_ND2D_CKPT_CREATE(%s,
creationFlags=0x%X)",
- info->ckpt_name.value,
info->attributes.creationFlags);
+ snprintf(o_evt_str, len, "CPD_EVT_ND2D_CKPT_CREATE(%s,
creationFlags=0x%X, release=%d, majorV=%d, minorV=%d)",
+ osaf_extended_name_borrow(&info->ckpt_name),
info->attributes.creationFlags, info->client_version.releaseCode,
+ info->client_version.majorVersion,
info->client_version.minorVersion);
break;
}
+ case CPD_EVT_ND2D_CKPT_CREATE_2:
+ {
+ CPSV_ND2D_CKPT_CREATE *info =
&evt->info.cpd.info.ckpt_create;
+ snprintf(o_evt_str, len,
"CPD_EVT_ND2D_CKPT_CREATE_2(%s, creationFlags=0x%X, release=%d, majorV=%d,
minorV=%d)",
+ osaf_extended_name_borrow(&info->ckpt_name),
info->attributes.creationFlags, info->client_version.releaseCode,
+ info->client_version.majorVersion,
info->client_version.minorVersion);
+
+ SaCkptCheckpointCreationAttributesT *attr =
&info->attributes;
+ TRACE("mSecS=%lld, flags=%d, mSec=%d, mSecIdS=%lld,
ret=%lld, ckptS=%lld", attr->maxSectionSize,
+ attr->creationFlags, attr->maxSections,
attr->maxSectionIdSize, attr->retentionDuration,
+ attr->checkpointSize);
+ break;
+ }
+
case CPD_EVT_ND2D_CKPT_UNLINK:
{
snprintf(o_evt_str, len,
"CPD_EVT_ND2D_CKPT_UNLINK(%s)", evt->info.cpd.info.ckpt_ulink.ckpt_name.value);
break;
}
+ case CPD_EVT_ND2D_CKPT_UNLINK_2:
+ {
+ snprintf(o_evt_str, len,
"CPD_EVT_ND2D_CKPT_UNLINK_2(%s)",
osaf_extended_name_borrow(&evt->info.cpd.info.ckpt_ulink.ckpt_name));
+ break;
+ }
case CPD_EVT_ND2D_CKPT_RDSET:
{
CPSV_CKPT_RDSET *info = &evt->info.cpd.info.rd_set;
@@ -881,6 +945,12 @@ char* cpsv_evt_str(CPSV_EVT *evt, char *
snprintf(o_evt_str, len,
"CPD_EVT_ND2D_CKPT_DESTROY_BYNAME(ckpt=%s)", info->ckpt_name.value);
break;
}
+ case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME_2:
+ {
+ CPSV_CKPT_NAME_INFO *info =
&evt->info.cpd.info.ckpt_destroy_byname;
+ snprintf(o_evt_str, len,
"CPD_EVT_ND2D_CKPT_DESTROY_BYNAME_2(ckpt=%s)",
osaf_extended_name_borrow(&info->ckpt_name));
+ break;
+ }
case CPD_EVT_ND2D_CKPT_CREATED_SECTIONS:
{
CPSV_CKPT_NUM_SECTIONS *info =
&evt->info.cpd.info.ckpt_created_sections;
@@ -1423,6 +1493,15 @@ uint32_t cpsv_evt_enc_flat(EDU_HDL *edu_
i_evt->info.cpnd.info.ckpt_create.ckpt_info.dest_cnt *
sizeof(CPSV_CPND_DEST_INFO);
ncs_encode_n_octets_in_uba(o_ub, (uint8_t
*)dest_list, size);
}
+ } else if (i_evt->info.cpnd.type ==
CPND_EVT_D2ND_CKPT_CREATE_2) {
+ CPSV_CPND_DEST_INFO *dest_list =
i_evt->info.cpnd.info.ckpt_create.ckpt_info.dest_list;
+ if
(i_evt->info.cpnd.info.ckpt_create.ckpt_info.dest_cnt) {
+ size =
+
i_evt->info.cpnd.info.ckpt_create.ckpt_info.dest_cnt *
sizeof(CPSV_CPND_DEST_INFO);
+ ncs_encode_n_octets_in_uba(o_ub, (uint8_t
*)dest_list, size);
+ }
+ cpsv_encode_extended_name_flat(o_ub,
&i_evt->info.cpnd.info.ckpt_create.ckpt_name);
+
} else if (i_evt->info.cpnd.type == CPSV_D2ND_RESTART_DONE) {
CPSV_CPND_DEST_INFO *dest_list =
i_evt->info.cpnd.info.cpnd_restart_done.dest_list;
if (i_evt->info.cpnd.info.cpnd_restart_done.dest_cnt) {
@@ -1435,13 +1514,25 @@ uint32_t cpsv_evt_enc_flat(EDU_HDL *edu_
size = i_evt->info.cpnd.info.ckpt_add.dest_cnt
* sizeof(CPSV_CPND_DEST_INFO);
ncs_encode_n_octets_in_uba(o_ub, (uint8_t
*)dest_list, size);
}
- }
- else if(i_evt->info.cpnd.type == CPND_EVT_A2ND_CKPT_REFCNTSET)
- {
- if(i_evt->info.cpnd.info.refCntsetReq.no_of_nodes)
- cpsv_ref_cnt_encode(o_ub, &i_evt->info.cpnd.info.refCntsetReq);
- }
- }
+ } else if (i_evt->info.cpnd.type ==
CPND_EVT_A2ND_CKPT_REFCNTSET) {
+ if (i_evt->info.cpnd.info.refCntsetReq.no_of_nodes)
+ cpsv_ref_cnt_encode(o_ub,
&i_evt->info.cpnd.info.refCntsetReq);
+ } else if (i_evt->info.cpnd.type == CPND_EVT_A2ND_CKPT_OPEN_2) {
+ cpsv_encode_extended_name_flat(o_ub,
&i_evt->info.cpnd.info.openReq.ckpt_name);
+ } else if (i_evt->info.cpnd.type ==
CPND_EVT_A2ND_CKPT_UNLINK_2) {
+ cpsv_encode_extended_name_flat(o_ub,
&i_evt->info.cpnd.info.ulinkReq.ckpt_name);
+ } else if (i_evt->info.cpnd.type ==
CPND_EVT_A2ND_CKPT_LIST_UPDATE_2) {
+ cpsv_encode_extended_name_flat(o_ub,
&i_evt->info.cpnd.info.ckptListUpdate.ckpt_name);
+ }
+ } else if (i_evt->type == CPSV_EVT_TYPE_CPD) {
+ if (i_evt->info.cpd.type == CPD_EVT_ND2D_CKPT_CREATE_2) {
+ cpsv_encode_extended_name_flat(o_ub,
&i_evt->info.cpd.info.ckpt_create.ckpt_name);
+ } else if (i_evt->info.cpd.type == CPD_EVT_ND2D_CKPT_UNLINK_2) {
+ cpsv_encode_extended_name_flat(o_ub,
&i_evt->info.cpd.info.ckpt_ulink.ckpt_name);
+ } else if (i_evt->info.cpd.type ==
CPD_EVT_ND2D_CKPT_DESTROY_BYNAME_2) {
+ cpsv_encode_extended_name_flat(o_ub,
&i_evt->info.cpd.info.ckpt_destroy_byname.ckpt_name);
+ }
+ }
return NCSCC_RC_SUCCESS;
}
@@ -2074,6 +2165,22 @@ uint32_t cpsv_evt_dec_flat(EDU_HDL *edu_
}
break;
+
+ case CPND_EVT_D2ND_CKPT_CREATE_2:
+
+ if
(o_evt->info.cpnd.info.ckpt_create.ckpt_info.dest_cnt) {
+ CPSV_CPND_DEST_INFO *dest_list = 0;
+ uint32_t size = sizeof(CPSV_CPND_DEST_INFO) *
+
o_evt->info.cpnd.info.ckpt_create.ckpt_info.dest_cnt;
+ if (size)
+ dest_list =
m_MMGR_ALLOC_CPSV_SYS_MEMORY(size);
+ if (dest_list && size)
+ ncs_decode_n_octets_from_uba(i_ub,
(uint8_t *)dest_list, size);
+
o_evt->info.cpnd.info.ckpt_create.ckpt_info.dest_list = dest_list;
+ }
+ cpsv_decode_extended_name_flat(i_ub,
&o_evt->info.cpnd.info.ckpt_create.ckpt_name);
+ break;
+
case CPSV_D2ND_RESTART_DONE:
if (o_evt->info.cpnd.info.cpnd_restart_done.dest_cnt) {
@@ -2100,10 +2207,34 @@ uint32_t cpsv_evt_dec_flat(EDU_HDL *edu_
o_evt->info.cpnd.info.ckpt_add.dest_list =
dest_list;
}
break;
- case CPND_EVT_A2ND_CKPT_REFCNTSET:
- if(o_evt->info.cpnd.info.refCntsetReq.no_of_nodes)
- cpsv_refcnt_ckptid_decode(&o_evt->info.cpnd.info.refCntsetReq,i_ub
);
- break;
+ case CPND_EVT_A2ND_CKPT_REFCNTSET:
+ if(o_evt->info.cpnd.info.refCntsetReq.no_of_nodes)
+
cpsv_refcnt_ckptid_decode(&o_evt->info.cpnd.info.refCntsetReq,i_ub );
+ break;
+ case CPND_EVT_A2ND_CKPT_OPEN_2:
+ cpsv_decode_extended_name_flat(i_ub,
&o_evt->info.cpnd.info.openReq.ckpt_name);
+ break;
+ case CPND_EVT_A2ND_CKPT_UNLINK_2:
+ cpsv_decode_extended_name_flat(i_ub,
&o_evt->info.cpnd.info.ulinkReq.ckpt_name);
+ break;
+ case CPND_EVT_A2ND_CKPT_LIST_UPDATE_2:
+ cpsv_decode_extended_name_flat(i_ub,
&o_evt->info.cpnd.info.ckptListUpdate.ckpt_name);
+ break;
+ default:
+ break;
+ }
+ } else if (o_evt->type == CPSV_EVT_TYPE_CPD) {
+ switch (o_evt->info.cpd.type)
+ {
+ case CPD_EVT_ND2D_CKPT_CREATE_2:
+ cpsv_decode_extended_name_flat(i_ub,
&o_evt->info.cpd.info.ckpt_create.ckpt_name);
+ break;
+ case CPD_EVT_ND2D_CKPT_UNLINK_2:
+ cpsv_decode_extended_name_flat(i_ub,
&o_evt->info.cpd.info.ckpt_ulink.ckpt_name);
+ break;
+ case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME_2:
+ cpsv_decode_extended_name_flat(i_ub,
&o_evt->info.cpd.info.ckpt_destroy_byname.ckpt_name);
+ break;
default:
break;
}
@@ -2245,3 +2376,334 @@ void cpsv_convert_sec_id_to_string(char
strncpy(sec_id_str, "(NULL)", MAX_SEC_ID_LEN);
}
}
+
+uint32_t cpsv_encode_extended_name(NCS_UBAID *uba, SaNameT *name)
+{
+ uint32_t rc;
+
+ if(!osaf_is_an_extended_name(name))
+ return NCSCC_RC_SUCCESS;
+
+ SaConstStringT value = osaf_extended_name_borrow(name);
+ uint16_t length = osaf_extended_name_length(name);
+
+ /* Encode name length */
+ if (length > kOsafMaxDnLength) {
+ LOG_ER("SaNameT length too long: %d", length);
+ return NCSCC_RC_FAILURE;
+ }
+ osaf_encode_uint16(uba, length);
+
+ /* Encode name value */
+ rc = ncs_encode_n_octets_in_uba(uba, (uint8_t*)value, (uint32_t)length);
+ return rc;
+}
+uint32_t cpsv_decode_extended_name(NCS_UBAID *uba, SaNameT *name)
+{
+ uint16_t length = 0;
+ uint32_t rc;
+ if(!osaf_is_an_extended_name(name))
+ return NCSCC_RC_SUCCESS;
+
+ /* Decode name length */
+ osaf_decode_uint16(uba, &length);
+ if (length > kOsafMaxDnLength) {
+ LOG_ER("SaNameT length too long: %d", length);
+ return NCSCC_RC_FAILURE;
+ }
+
+ /* Decode name value */
+ char* value = (char*) malloc(length + 1);
+ if (value == NULL) {
+ LOG_ER("Out of memory");
+ return NCSCC_RC_FAILURE;
+ }
+ rc = ncs_decode_n_octets_from_uba(uba, (uint8_t*) value, (uint32_t)
length);
+ value[length] = '\0';
+ osaf_extended_name_steal(value, name);
+ return rc;
+}
+
+static uint32_t cpsv_encode_extended_name_flat(NCS_UBAID *uba, SaNameT *name)
+{
+ uint32_t rc;
+
+ if(!osaf_is_an_extended_name(name))
+ return NCSCC_RC_SUCCESS;
+
+ SaConstStringT value = osaf_extended_name_borrow(name);
+ uint16_t length = osaf_extended_name_length(name);
+
+ /* Encode name length */
+ if (length > kOsafMaxDnLength) {
+ LOG_ER("SaNameT length too long: %d", length);
+ return NCSCC_RC_FAILURE;
+ }
+ rc = ncs_encode_n_octets_in_uba(uba, (uint8_t*)&length, sizeof(length));
+ if (rc != NCSCC_RC_SUCCESS)
+ return rc;
+
+ /* Encode name value */
+ rc = ncs_encode_n_octets_in_uba(uba, (uint8_t*)value, (uint32_t)length);
+ return rc;
+}
+
+static uint32_t cpsv_decode_extended_name_flat(NCS_UBAID *uba, SaNameT *name)
+{
+ uint16_t length = 0;
+ uint32_t rc;
+ if(!osaf_is_an_extended_name(name))
+ return NCSCC_RC_SUCCESS;
+
+ /* Decode name length */
+ rc = ncs_decode_n_octets_from_uba(uba, (uint8_t*)&length,
sizeof(length));
+ if (rc != NCSCC_RC_SUCCESS)
+ return rc;
+
+ if (length > kOsafMaxDnLength) {
+ LOG_ER("SaNameT length too long: %d", length);
+ return NCSCC_RC_FAILURE;
+ }
+
+ /* Decode name value */
+ char* value = (char*) malloc(length + 1);
+ if (value == NULL) {
+ LOG_ER("Out of memory");
+ return NCSCC_RC_FAILURE;
+ }
+ rc = ncs_decode_n_octets_from_uba(uba, (uint8_t*) value, (uint32_t)
length);
+ value[length] = '\0';
+ osaf_extended_name_steal(value, name);
+ return rc;
+}
+
+void cpsv_ckpt_dest_list_encode(NCS_UBAID *io_uba, CPSV_CPND_DEST_INFO
*dest_list, uint32_t dest_cnt)
+{
+ TRACE_ENTER();
+
+ if ((dest_list == NULL) || (dest_cnt == 0)) {
+ TRACE_LEAVE();
+ return;
+ }
+
+ int i = 0;
+ for (i = 0; i < dest_cnt; i++) {
+ uint8_t *stream = ncs_enc_reserve_space(io_uba,
sizeof(MDS_DEST));
+ ncs_encode_64bit(&stream, dest_list[i].dest);
+ ncs_enc_claim_space(io_uba, sizeof(MDS_DEST));
+ }
+
+ TRACE_LEAVE();
+}
+
+void cpsv_ckpt_dest_list_decode(NCS_UBAID *io_uba, CPSV_CPND_DEST_INFO
**o_dest_list, uint32_t dest_cnt)
+{
+ TRACE_ENTER();
+
+ int i = 0;
+
+ if (dest_cnt == 0) {
+ TRACE_LEAVE();
+ return;
+ }
+
+ *o_dest_list = m_MMGR_ALLOC_CPSV_SYS_MEMORY(sizeof(CPSV_CPND_DEST_INFO)
* dest_cnt);
+ CPSV_CPND_DEST_INFO *dest_list = *o_dest_list;
+
+ for (i = 0; i < dest_cnt; i++) {
+ CPSV_CPND_DEST_INFO dest_info;
+ uint8_t *stream = ncs_dec_flatten_space(io_uba, (uint8_t
*)&dest_info, sizeof(MDS_DEST));
+ dest_list[i].dest = ncs_decode_64bit(&stream);
+ ncs_dec_skip_space(io_uba, sizeof(MDS_DEST));
+ }
+
+ TRACE_LEAVE();
+}
+
+void cpsv_ckpt_creation_attribute_encode(NCS_UBAID *io_uba,
SaCkptCheckpointCreationAttributesT *attributes)
+{
+ osaf_encode_uint32(io_uba, attributes->creationFlags);
+ osaf_encode_uint64(io_uba, attributes->checkpointSize);
+ osaf_encode_satimet(io_uba, attributes->retentionDuration);
+ osaf_encode_uint32(io_uba, attributes->maxSections);
+ osaf_encode_uint64(io_uba, attributes->maxSectionSize);
+ osaf_encode_uint64(io_uba, attributes->maxSectionIdSize);
+}
+
+void cpsv_ckpt_creation_attribute_decode(NCS_UBAID *io_uba,
SaCkptCheckpointCreationAttributesT *attributes)
+{
+ osaf_decode_uint32(io_uba, &attributes->creationFlags);
+ osaf_decode_uint64(io_uba, (uint64_t *)&attributes->checkpointSize);
+ osaf_decode_satimet(io_uba, &attributes->retentionDuration);
+ osaf_decode_uint32(io_uba, &attributes->maxSections);
+ osaf_decode_uint64(io_uba, (uint64_t *)&attributes->maxSectionSize);
+ osaf_decode_uint64(io_uba, (uint64_t *)&attributes->maxSectionIdSize);
+}
+
+uint32_t cpsv_d2nd_ckpt_create_2_encode(CPSV_D2ND_CKPT_CREATE *create_data,
NCS_UBAID *io_uba)
+{
+ TRACE_ENTER();
+
+ osaf_encode_sanamet(io_uba, &create_data->ckpt_name);
+
+ osaf_encode_uint32(io_uba, create_data->ckpt_info.error);
+ osaf_encode_uint64(io_uba, create_data->ckpt_info.ckpt_id);
+ osaf_encode_bool(io_uba, create_data->ckpt_info.is_active_exists);
+ cpsv_ckpt_creation_attribute_encode(io_uba,
&create_data->ckpt_info.attributes);
+ osaf_encode_uint64(io_uba, create_data->ckpt_info.active_dest);
+ osaf_encode_bool(io_uba, create_data->ckpt_info.ckpt_rep_create);
+ osaf_encode_uint32(io_uba, create_data->ckpt_info.dest_cnt);
+ cpsv_ckpt_dest_list_encode(io_uba, create_data->ckpt_info.dest_list,
create_data->ckpt_info.dest_cnt);
+
+ cpsv_encode_extended_name(io_uba, &create_data->ckpt_name);
+
+ TRACE_LEAVE();
+ return NCSCC_RC_SUCCESS;
+}
+
+uint32_t cpsv_d2nd_ckpt_create_2_decode(CPSV_D2ND_CKPT_CREATE *create_data,
NCS_UBAID *io_uba)
+{
+ TRACE_ENTER();
+
+ osaf_decode_sanamet(io_uba, &create_data->ckpt_name);
+
+ osaf_decode_uint32(io_uba, &create_data->ckpt_info.error);
+ osaf_decode_uint64(io_uba, (uint64_t *)&create_data->ckpt_info.ckpt_id);
+ osaf_decode_bool(io_uba, &create_data->ckpt_info.is_active_exists);
+ cpsv_ckpt_creation_attribute_decode(io_uba,
&create_data->ckpt_info.attributes);
+ osaf_decode_uint64(io_uba, &create_data->ckpt_info.active_dest);
+ osaf_decode_bool(io_uba, &create_data->ckpt_info.ckpt_rep_create);
+ osaf_decode_uint32(io_uba, &create_data->ckpt_info.dest_cnt);
+ cpsv_ckpt_dest_list_decode(io_uba, &create_data->ckpt_info.dest_list,
create_data->ckpt_info.dest_cnt);
+
+ cpsv_decode_extended_name(io_uba, &create_data->ckpt_name);
+
+ TRACE_LEAVE();
+ return NCSCC_RC_SUCCESS;
+}
+
+uint32_t cpsv_nd2d_ckpt_create_2_encode(CPSV_ND2D_CKPT_CREATE *create_data,
NCS_UBAID *io_uba)
+{
+ TRACE_ENTER();
+
+ osaf_encode_sanamet(io_uba, &create_data->ckpt_name);
+ cpsv_ckpt_creation_attribute_encode(io_uba, &create_data->attributes);
+ osaf_encode_uint32(io_uba, create_data->ckpt_flags);
+ osaf_encode_uint8(io_uba, create_data->client_version.releaseCode);
+ osaf_encode_uint8(io_uba, create_data->client_version.majorVersion);
+ osaf_encode_uint8(io_uba, create_data->client_version.minorVersion);
+
+ cpsv_encode_extended_name(io_uba, &create_data->ckpt_name);
+
+ TRACE_LEAVE();
+ return NCSCC_RC_SUCCESS;
+}
+
+uint32_t cpsv_nd2d_ckpt_create_2_decode(CPSV_ND2D_CKPT_CREATE *create_data,
NCS_UBAID *io_uba)
+{
+ TRACE_ENTER();
+
+ osaf_decode_sanamet(io_uba, &create_data->ckpt_name);
+ cpsv_ckpt_creation_attribute_decode(io_uba, &create_data->attributes);
+ osaf_decode_uint32(io_uba, &create_data->ckpt_flags);
+ osaf_decode_uint8(io_uba, &create_data->client_version.releaseCode);
+ osaf_decode_uint8(io_uba, &create_data->client_version.majorVersion);
+ osaf_decode_uint8(io_uba, &create_data->client_version.minorVersion);
+
+ cpsv_decode_extended_name(io_uba, &create_data->ckpt_name);
+
+ TRACE_LEAVE();
+ return NCSCC_RC_SUCCESS;
+}
+
+uint32_t cpsv_nd2d_ckpt_unlink_2_encode(CPSV_ND2D_CKPT_UNLINK *unlink_info,
NCS_UBAID *io_uba)
+{
+ TRACE_ENTER();
+
+ osaf_encode_sanamet(io_uba, &unlink_info->ckpt_name);
+ cpsv_encode_extended_name(io_uba, &unlink_info->ckpt_name);
+
+ TRACE_LEAVE();
+ return NCSCC_RC_SUCCESS;
+}
+
+uint32_t cpsv_nd2d_ckpt_unlink_2_decode(CPSV_ND2D_CKPT_UNLINK *unlink_info,
NCS_UBAID *io_uba)
+{
+ TRACE_ENTER();
+
+ osaf_decode_sanamet(io_uba, &unlink_info->ckpt_name);
+ cpsv_decode_extended_name(io_uba, &unlink_info->ckpt_name);
+
+ TRACE_LEAVE();
+ return NCSCC_RC_SUCCESS;
+}
+
+uint32_t cpsv_nd2d_ckpt_destroy_byname_2_encode(CPSV_CKPT_NAME_INFO
*ckpt_info, NCS_UBAID *io_uba)
+{
+ TRACE_ENTER();
+
+ osaf_encode_sanamet(io_uba, &ckpt_info->ckpt_name);
+ cpsv_encode_extended_name(io_uba, &ckpt_info->ckpt_name);
+
+ TRACE_LEAVE();
+ return NCSCC_RC_SUCCESS;
+}
+
+uint32_t cpsv_nd2d_ckpt_destroy_byname_2_decode(CPSV_CKPT_NAME_INFO
*ckpt_info, NCS_UBAID *io_uba)
+{
+ TRACE_ENTER();
+
+ osaf_decode_sanamet(io_uba, &ckpt_info->ckpt_name);
+ cpsv_decode_extended_name(io_uba, &ckpt_info->ckpt_name);
+
+ TRACE_LEAVE();
+ return NCSCC_RC_SUCCESS;
+}
+
+uint32_t cpsv_nd2d_ckpt_info_update_encode(CPSV_ND2D_CKPT_INFO_UPD
*update_info, NCS_UBAID *io_uba)
+{
+ TRACE_ENTER();
+
+ osaf_encode_uint64(io_uba, update_info->ckpt_id);
+ osaf_encode_sanamet(io_uba, &update_info->ckpt_name);
+ cpsv_ckpt_creation_attribute_encode(io_uba, &update_info->attributes);
+ osaf_encode_uint32(io_uba, update_info->ckpt_flags);
+ osaf_encode_uint8(io_uba, update_info->client_version.releaseCode);
+ osaf_encode_uint8(io_uba, update_info->client_version.majorVersion);
+ osaf_encode_uint8(io_uba, update_info->client_version.minorVersion);
+ osaf_encode_bool(io_uba, update_info->is_active);
+ osaf_encode_uint32(io_uba, update_info->num_users);
+ osaf_encode_uint32(io_uba, update_info->num_writers);
+ osaf_encode_uint32(io_uba, update_info->num_readers);
+ osaf_encode_bool(io_uba, update_info->is_last);
+ osaf_encode_bool(io_uba, update_info->is_unlink);
+
+ cpsv_encode_extended_name(io_uba, &update_info->ckpt_name);
+
+ TRACE_LEAVE();
+ return NCSCC_RC_SUCCESS;
+}
+
+uint32_t cpsv_nd2d_ckpt_info_update_decode(CPSV_ND2D_CKPT_INFO_UPD
*update_info, NCS_UBAID *io_uba)
+{
+ TRACE_ENTER();
+
+ osaf_decode_uint64(io_uba, (uint64_t *)&update_info->ckpt_id);
+ osaf_decode_sanamet(io_uba, &update_info->ckpt_name);
+ cpsv_ckpt_creation_attribute_decode(io_uba, &update_info->attributes);
+ osaf_decode_uint32(io_uba, &update_info->ckpt_flags);
+ osaf_decode_uint8(io_uba, &update_info->client_version.releaseCode);
+ osaf_decode_uint8(io_uba, &update_info->client_version.majorVersion);
+ osaf_decode_uint8(io_uba, &update_info->client_version.minorVersion);
+ osaf_decode_bool(io_uba, &update_info->is_active);
+ osaf_decode_uint32(io_uba, &update_info->num_users);
+ osaf_decode_uint32(io_uba, &update_info->num_writers);
+ osaf_decode_uint32(io_uba, &update_info->num_readers);
+ osaf_decode_bool(io_uba, &update_info->is_last);
+ osaf_decode_bool(io_uba, &update_info->is_unlink);
+
+ cpsv_decode_extended_name(io_uba, &update_info->ckpt_name);
+
+ TRACE_LEAVE();
+ return NCSCC_RC_SUCCESS;
+}
diff --git a/osaf/libs/common/cpsv/include/cpsv_evt.h
b/osaf/libs/common/cpsv/include/cpsv_evt.h
--- a/osaf/libs/common/cpsv/include/cpsv_evt.h
+++ b/osaf/libs/common/cpsv/include/cpsv_evt.h
@@ -191,6 +191,13 @@ typedef enum cpnd_evt_type {
CPND_EVT_A2ND_CKPT_LIST_UPDATE, /* Checkpoint ckpt list update Call */
CPND_EVT_A2ND_ARRIVAL_CB_UNREG, /* Checkpoint Arrival Callback
Un-Register*/
CPND_EVT_D2ND_CKPT_INFO_UPDATE_ACK, /* Checkpoint information update ack */
+
+ /* Events support extended SaNameT */
+ CPND_EVT_A2ND_CKPT_OPEN_2, /* Checkpoint Open Request */
+ CPND_EVT_A2ND_CKPT_UNLINK_2, /* Checkpoint Unlink Call */
+ CPND_EVT_A2ND_CKPT_LIST_UPDATE_2, /* Checkpoint ckpt list update Call */
+ CPND_EVT_D2ND_CKPT_CREATE_2, /* ckpt create evt for Non-collocated */
+
CPND_EVT_MAX
}CPND_EVT_TYPE;
@@ -221,6 +228,12 @@ typedef enum cpd_evt_type {
CPD_EVT_ND2D_CKPT_CREATED_SECTIONS,
CPD_EVT_TIME_OUT,
CPD_EVT_ND2D_CKPT_INFO_UPDATE, /* Checkpoint information update */
+
+ /* Events support extended SaNameT */
+ CPD_EVT_ND2D_CKPT_CREATE_2,
+ CPD_EVT_ND2D_CKPT_UNLINK_2,
+ CPD_EVT_ND2D_CKPT_DESTROY_BYNAME_2,
+
CPD_EVT_MAX
} CPD_EVT_TYPE;
@@ -897,6 +910,16 @@ uint32_t cpsv_nd2a_read_data_encode(CPSV
uint32_t cpsv_data_access_rsp_decode(CPSV_ND2A_DATA_ACCESS_RSP *data_rsp,
NCS_UBAID *io_uba, MDS_CLIENT_MSG_FORMAT_VER i_msg_fmt_ver);
uint32_t cpsv_nd2a_read_data_decode(CPSV_ND2A_READ_DATA *read_data, NCS_UBAID
*io_uba);
uint32_t cpsv_data_access_rsp_encode(CPSV_ND2A_DATA_ACCESS_RSP *data_rsp,
NCS_UBAID *io_uba, MDS_CLIENT_MSG_FORMAT_VER o_msg_fmt_ver);
+uint32_t cpsv_d2nd_ckpt_create_2_encode(CPSV_D2ND_CKPT_CREATE *create_data,
NCS_UBAID *io_uba);
+uint32_t cpsv_d2nd_ckpt_create_2_decode(CPSV_D2ND_CKPT_CREATE *create_data,
NCS_UBAID *io_uba);
+uint32_t cpsv_nd2d_ckpt_create_2_encode(CPSV_ND2D_CKPT_CREATE *create_data,
NCS_UBAID *io_uba);
+uint32_t cpsv_nd2d_ckpt_create_2_decode(CPSV_ND2D_CKPT_CREATE *create_data,
NCS_UBAID *io_uba);
+uint32_t cpsv_nd2d_ckpt_unlink_2_encode(CPSV_ND2D_CKPT_UNLINK *unlink_info,
NCS_UBAID *io_uba);
+uint32_t cpsv_nd2d_ckpt_unlink_2_decode(CPSV_ND2D_CKPT_UNLINK *unlink_info,
NCS_UBAID *io_uba);
+uint32_t cpsv_nd2d_ckpt_destroy_byname_2_encode(CPSV_CKPT_NAME_INFO
*ckpt_info, NCS_UBAID *io_uba);
+uint32_t cpsv_nd2d_ckpt_destroy_byname_2_decode(CPSV_CKPT_NAME_INFO
*ckpt_info, NCS_UBAID *io_uba);
+uint32_t cpsv_nd2d_ckpt_info_update_encode(CPSV_ND2D_CKPT_INFO_UPD
*update_info, NCS_UBAID *io_uba);
+uint32_t cpsv_nd2d_ckpt_info_update_decode(CPSV_ND2D_CKPT_INFO_UPD
*update_info, NCS_UBAID *io_uba);
void cpsv_evt_trace(char *svc_name, CPSV_EVT_REQUEST request, CPSV_EVT *evt,
MDS_DEST mds_dest);
/*
diff --git a/osaf/services/saf/cpsv/cpd/cpd_mds.c
b/osaf/services/saf/cpsv/cpd/cpd_mds.c
--- a/osaf/services/saf/cpsv/cpd/cpd_mds.c
+++ b/osaf/services/saf/cpsv/cpd/cpd_mds.c
@@ -309,8 +309,9 @@ uint32_t cpd_mds_callback(struct ncsmds_
******************************************************************************/
static uint32_t cpd_mds_enc(CPD_CB *cb, MDS_CALLBACK_ENC_INFO *enc_info)
{
- CPSV_EVT *msg_ptr = NULL;
EDU_ERR ederror = 0;
+ NCS_UBAID *io_uba = enc_info->io_uba;
+ uint32_t rc = NCSCC_RC_SUCCESS;
/* Get the Msg Format version from the SERVICE_ID &
RMT_SVC_PVT_SUBPART_VERSION */
if (enc_info->i_to_svc_id == NCSMDS_SVC_ID_CPA) {
@@ -327,13 +328,35 @@ static uint32_t cpd_mds_enc(CPD_CB *cb,
if (enc_info->o_msg_fmt_ver) {
- msg_ptr = (CPSV_EVT *)enc_info->i_msg;
+ CPSV_EVT *pevt = (CPSV_EVT *)enc_info->i_msg;
+ uint8_t *pstream = NULL;
+
+ if (pevt->type == CPSV_EVT_TYPE_CPND) {
+ switch (pevt->info.cpnd.type) {
+ case CPND_EVT_D2ND_CKPT_CREATE:
+
+ pstream = ncs_enc_reserve_space(io_uba, 12);
+ if (!pstream)
+ return m_CPSV_DBG_SINK(NCSCC_RC_FAILURE,
+ "Memory alloc
failed in cpnd_mds_enc \n");
+ ncs_encode_32bit(&pstream, pevt->type);
+ ncs_encode_32bit(&pstream,
pevt->info.cpnd.error);
+ ncs_encode_32bit(&pstream,
pevt->info.cpnd.type);
+ ncs_enc_claim_space(io_uba, 12);
+
+ rc =
cpsv_d2nd_ckpt_create_2_encode(&pevt->info.cpnd.info.ckpt_create, io_uba);
+ return rc;
+
+ default:
+ break;
+ }
+ }
return (m_NCS_EDU_VER_EXEC(&cb->edu_hdl, FUNC_NAME(CPSV_EVT),
- enc_info->io_uba, EDP_OP_TYPE_ENC,
msg_ptr, &ederror,
+ enc_info->io_uba, EDP_OP_TYPE_ENC,
pevt, &ederror,
enc_info->i_rem_svc_pvt_ver));
} else {
- TRACE_4("INVALID MSG FORMAT IN ENC FULL"); /* Drop The
Message,Format Version Invalid */
+ LOG_IN("INVALID MSG FORMAT IN ENC FULL"); /* Drop The
Message,Format Version Invalid */
return NCSCC_RC_FAILURE;
}
@@ -358,6 +381,7 @@ static uint32_t cpd_mds_dec(CPD_CB *cb,
EDU_ERR ederror = 0;
uint32_t rc = NCSCC_RC_SUCCESS;
bool is_valid_msg_fmt = false;
+ uint8_t local_data[20];
if (dec_info->i_fr_svc_id == NCSMDS_SVC_ID_CPND) {
is_valid_msg_fmt =
m_NCS_MSG_FORMAT_IS_VALID(dec_info->i_msg_fmt_ver,
@@ -371,16 +395,64 @@ static uint32_t cpd_mds_dec(CPD_CB *cb,
memset(msg_ptr, 0, sizeof(CPSV_EVT));
dec_info->o_msg = (NCSCONTEXT)msg_ptr;
+ uint8_t *pstream = ncs_dec_flatten_space(dec_info->io_uba,
local_data, 8);
+ msg_ptr->type = ncs_decode_32bit(&pstream);
+
+ if (msg_ptr->type == CPSV_EVT_TYPE_CPD) {
+ msg_ptr->info.cpd.type = ncs_decode_32bit(&pstream);
+
+ switch (msg_ptr->info.cpd.type) {
+ case CPD_EVT_ND2D_CKPT_CREATE_2:
+ ncs_dec_skip_space(dec_info->io_uba, 8);
+ rc =
cpsv_nd2d_ckpt_create_2_decode(&msg_ptr->info.cpd.info.ckpt_create,
dec_info->io_uba);
+ if (rc != NCSCC_RC_SUCCESS) {
+ LOG_ER("cpd mds decode failed ");
+ m_MMGR_FREE_CPSV_EVT(dec_info->o_msg,
NCS_SERVICE_ID_CPD);
+ }
+ return rc;
+
+ case CPD_EVT_ND2D_CKPT_UNLINK_2:
+ ncs_dec_skip_space(dec_info->io_uba, 8);
+ rc =
cpsv_nd2d_ckpt_unlink_2_decode(&msg_ptr->info.cpd.info.ckpt_ulink,
dec_info->io_uba);
+ if (rc != NCSCC_RC_SUCCESS) {
+ LOG_ER("cpd mds decode failed ");
+ m_MMGR_FREE_CPSV_EVT(dec_info->o_msg,
NCS_SERVICE_ID_CPD);
+ }
+ return rc;
+
+
+ case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME_2:
+ ncs_dec_skip_space(dec_info->io_uba, 8);
+ rc =
cpsv_nd2d_ckpt_destroy_byname_2_decode(&msg_ptr->info.cpd.info.ckpt_destroy_byname,
dec_info->io_uba);
+ if (rc != NCSCC_RC_SUCCESS) {
+ LOG_ER("cpd mds decode failed ");
+ m_MMGR_FREE_CPSV_EVT(dec_info->o_msg,
NCS_SERVICE_ID_CPD);
+ }
+ return rc;
+
+ case CPD_EVT_ND2D_CKPT_INFO_UPDATE:
+ ncs_dec_skip_space(dec_info->io_uba, 8);
+ rc =
cpsv_nd2d_ckpt_info_update_decode(&msg_ptr->info.cpd.info.ckpt_info,
dec_info->io_uba);
+ if (rc != NCSCC_RC_SUCCESS) {
+ LOG_ER("cpd mds decode failed ");
+ m_MMGR_FREE_CPSV_EVT(dec_info->o_msg,
NCS_SERVICE_ID_CPD);
+ }
+ return rc;
+
+ default:
+ break;
+ }
+ }
rc = m_NCS_EDU_EXEC(&cb->edu_hdl, FUNC_NAME(CPSV_EVT),
dec_info->io_uba, EDP_OP_TYPE_DEC,
(CPSV_EVT **)&dec_info->o_msg, &ederror);
if (rc != NCSCC_RC_SUCCESS) {
- TRACE_4("cpd mds decode failed ");
+ LOG_ER("cpd mds decode failed ");
m_MMGR_FREE_CPSV_EVT(dec_info->o_msg,
NCS_SERVICE_ID_CPD);
}
return rc;
} else {
- TRACE_4("cpd mds dec failed");
+ LOG_ER("cpd mds dec failed - invalid fmr_ver = %d",
dec_info->i_msg_fmt_ver);
return NCSCC_RC_FAILURE;
}
}
diff --git a/osaf/services/saf/cpsv/cpnd/cpnd_mds.c
b/osaf/services/saf/cpsv/cpnd/cpnd_mds.c
--- a/osaf/services/saf/cpsv/cpnd/cpnd_mds.c
+++ b/osaf/services/saf/cpsv/cpnd/cpnd_mds.c
@@ -330,6 +330,7 @@ static uint32_t cpnd_mds_enc(CPND_CB *cb
ncs_enc_claim_space(io_uba, 8);
rc =
cpsv_data_access_rsp_encode(&pevt->info.cpa.info.sec_data_rsp, io_uba,
enc_info->o_msg_fmt_ver);
+ TRACE_LEAVE();
return rc;
}
@@ -347,6 +348,7 @@ static uint32_t cpnd_mds_enc(CPND_CB *cb
ncs_enc_claim_space(io_uba, 12);
rc =
cpsv_ckpt_access_encode(&pevt->info.cpnd.info.ckpt_nd2nd_sync, io_uba);
+ TRACE_LEAVE();
return rc;
case CPSV_EVT_ND2ND_CKPT_SECT_ACTIVE_DATA_ACCESS_REQ:
@@ -361,6 +363,7 @@ static uint32_t cpnd_mds_enc(CPND_CB *cb
ncs_enc_claim_space(io_uba, 12);
rc =
cpsv_ckpt_access_encode(&pevt->info.cpnd.info.ckpt_nd2nd_data, io_uba);
+ TRACE_LEAVE();
return rc;
case CPSV_EVT_ND2ND_CKPT_SECT_ACTIVE_DATA_ACCESS_RSP:
@@ -375,14 +378,76 @@ static uint32_t cpnd_mds_enc(CPND_CB *cb
ncs_enc_claim_space(io_uba, 12);
rc =
cpsv_data_access_rsp_encode(&pevt->info.cpnd.info.ckpt_nd2nd_data_rsp, io_uba,
enc_info->o_msg_fmt_ver);
+ TRACE_LEAVE();
return rc;
+
+ default:
+ break;
+ }
+ } else if (pevt->type == CPSV_EVT_TYPE_CPD) {
+ switch (pevt->info.cpd.type) {
+ case CPD_EVT_ND2D_CKPT_CREATE_2:
+ pstream = ncs_enc_reserve_space(io_uba, 8);
+ if (!pstream)
+ return m_CPSV_DBG_SINK(NCSCC_RC_FAILURE,
+ "Memory alloc
failed in cpnd_mds_enc \n");
+ ncs_encode_32bit(&pstream, pevt->type); /*
CPSV_EVT Type */
+ ncs_encode_32bit(&pstream,
pevt->info.cpd.type); /* cpnd_evt SubType */
+ ncs_enc_claim_space(io_uba, 8);
+
+ rc =
cpsv_nd2d_ckpt_create_2_encode(&pevt->info.cpd.info.ckpt_create, io_uba);
+ TRACE_LEAVE();
+ return rc;
+
+ case CPD_EVT_ND2D_CKPT_UNLINK_2:
+ pstream = ncs_enc_reserve_space(io_uba, 8);
+ if (!pstream)
+ return m_CPSV_DBG_SINK(NCSCC_RC_FAILURE,
+ "Memory alloc
failed in cpnd_mds_enc \n");
+ ncs_encode_32bit(&pstream, pevt->type); /*
CPSV_EVT Type */
+ ncs_encode_32bit(&pstream,
pevt->info.cpd.type); /* cpnd_evt SubType */
+ ncs_enc_claim_space(io_uba, 8);
+
+ rc =
cpsv_nd2d_ckpt_unlink_2_encode(&pevt->info.cpd.info.ckpt_ulink, io_uba);
+ TRACE_LEAVE();
+ return rc;
+
+ case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME_2:
+ pstream = ncs_enc_reserve_space(io_uba, 8);
+ if (!pstream)
+ return m_CPSV_DBG_SINK(NCSCC_RC_FAILURE,
+ "Memory alloc
failed in cpnd_mds_enc \n");
+ ncs_encode_32bit(&pstream, pevt->type); /*
CPSV_EVT Type */
+ ncs_encode_32bit(&pstream,
pevt->info.cpd.type); /* cpnd_evt SubType */
+ ncs_enc_claim_space(io_uba, 8);
+
+ rc =
cpsv_nd2d_ckpt_destroy_byname_2_encode(&pevt->info.cpd.info.ckpt_destroy_byname,
io_uba);
+ TRACE_LEAVE();
+ return rc;
+
+ case CPD_EVT_ND2D_CKPT_INFO_UPDATE:
+ pstream = ncs_enc_reserve_space(io_uba, 8);
+ if (!pstream)
+ return m_CPSV_DBG_SINK(NCSCC_RC_FAILURE,
+ "Memory alloc
failed in cpnd_mds_enc \n");
+ ncs_encode_32bit(&pstream, pevt->type); /*
CPSV_EVT Type */
+ ncs_encode_32bit(&pstream,
pevt->info.cpd.type); /* cpnd_evt SubType */
+ ncs_enc_claim_space(io_uba, 8);
+
+ rc =
cpsv_nd2d_ckpt_info_update_encode(&pevt->info.cpd.info.ckpt_info, io_uba);
+ TRACE_LEAVE();
+ return rc;
+
+
default:
break;
}
}
/* For all other Cases Invoke EDU encode */
- return (m_NCS_EDU_EXEC(&cb->cpnd_edu_hdl, FUNC_NAME(CPSV_EVT),
- enc_info->io_uba, EDP_OP_TYPE_ENC, pevt,
&ederror));
+ rc = m_NCS_EDU_EXEC(&cb->cpnd_edu_hdl, FUNC_NAME(CPSV_EVT),
+ enc_info->io_uba, EDP_OP_TYPE_ENC, pevt,
&ederror);
+ TRACE_LEAVE();
+ return rc;
} else {
TRACE_LEAVE();
return m_CPSV_DBG_SINK(NCSCC_RC_FAILURE, "INVALID MSG FORMAT IN
ENCODE FULL\n"); /* Drop The Message - Incompatible Message Format
Version */
@@ -523,10 +588,16 @@ static uint32_t cpnd_mds_dec(CPND_CB *cb
dec_info->io_uba,dec_info->i_msg_fmt_ver);
goto free;
- case CPND_EVT_A2ND_CKPT_REFCNTSET:
- ncs_dec_skip_space(dec_info->io_uba, 12);
- rc =
cpsv_refcnt_ckptid_decode(&msg_ptr->info.cpnd.info.refCntsetReq,dec_info->io_uba);
- goto free;
+ case CPND_EVT_A2ND_CKPT_REFCNTSET:
+ ncs_dec_skip_space(dec_info->io_uba, 12);
+ rc =
cpsv_refcnt_ckptid_decode(&msg_ptr->info.cpnd.info.refCntsetReq,dec_info->io_uba);
+ goto free;
+
+ case CPND_EVT_D2ND_CKPT_CREATE:
+ ncs_dec_skip_space(dec_info->io_uba, 12);
+ rc =
cpsv_d2nd_ckpt_create_2_decode(&msg_ptr->info.cpnd.info.ckpt_create,
dec_info->io_uba);
+ goto free;
+
default:
break;
}
@@ -584,6 +655,7 @@ static uint32_t cpnd_mds_enc_flat(CPND_C
CPND_WRT_CPD_SUBPART_VER_MAX, cpnd_cpd_msg_fmt_table);
}
+ TRACE("o_msg_fmt_ver=%d, i_rem_svc_pvt_ver=%d", info->o_msg_fmt_ver,
info->i_rem_svc_pvt_ver);
if (info->o_msg_fmt_ver) {
evt = (CPSV_EVT *)info->i_msg;
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel