Hi Hoang, I completed the testing most of the in service & normal test case are working fine , so I stated reviewing code now can please answer below :
1) This patch introduced multiple new event between Agent to ND which are always local to the node ( in a new version software cpa & cpnd will always co-exist ) their no concept OLD CPA communicating with NEW CPND , so it is not required introduce new event we can alwasy make exist event compatible with new support extended SaNameT , so remove new event merge the content in to a single exist old event . ============================================================================= /* 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 */ ============================================================================= -AVM On 7/21/2016 3:04 PM, Hoang Vo wrote: > osaf/libs/common/cpsv/cpsv_evt.c | 504 > ++++++++++++++++++++++++++++++- > osaf/libs/common/cpsv/include/cpsv_evt.h | 24 + > osaf/services/saf/cpsv/cpd/cpd_mds.c | 84 ++++- > osaf/services/saf/cpsv/cpnd/cpnd_mds.c | 84 ++++- > 4 files changed, 668 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); > @@ -813,15 +857,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; > @@ -891,6 +955,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; > @@ -915,6 +985,16 @@ char* cpsv_evt_str(CPSV_EVT *evt, char * > info->is_last ? "true" : "false"); > break; > } > + case CPD_EVT_ND2D_CKPT_INFO_UPDATE_2: > + { > + CPSV_ND2D_CKPT_INFO_UPD *info = > &evt->info.cpd.info.ckpt_info; > + snprintf(o_evt_str, len, "[%llu] > CPD_EVT_ND2D_CKPT_INFO_UPDATE_2(%s, creationFlags=0x%X, " > + "openFlags=0x%X, numbers[U/W/R]=[%u/%u/%u], > active=%s, last=%s)", info->ckpt_id, > + osaf_extended_name_borrow(&info->ckpt_name), > info->attributes.creationFlags, info->ckpt_flags, info->num_users, > + info->num_writers, info->num_readers, > info->is_active ? "true" : "false", > + info->is_last ? "true" : "false"); > + break; > + } > default: > snprintf(o_evt_str, len, "INVALID_CPD_TYPE(type = %d)", > evt->info.cpd.type); > break; > @@ -1443,6 +1523,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) { > @@ -1455,13 +1544,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; > } > > @@ -2094,6 +2195,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) { > @@ -2120,10 +2237,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; > } > @@ -2265,3 +2406,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,13 @@ 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_ND2D_CKPT_INFO_UPDATE_2, > + > CPD_EVT_MAX > } CPD_EVT_TYPE; > > @@ -897,6 +911,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; ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. http://sdm.link/zohodev2dev _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel