Correct indent and reduce code lines (<80 chars) for mds_mdtm_send_tipc() and mdtm_frag_and_send() --- src/mds/mds_dt_tipc.c | 490 ++++++++++++++++++++++++++------------------------ 1 file changed, 256 insertions(+), 234 deletions(-)
diff --git a/src/mds/mds_dt_tipc.c b/src/mds/mds_dt_tipc.c index fdf0da7..722076f 100644 --- a/src/mds/mds_dt_tipc.c +++ b/src/mds/mds_dt_tipc.c @@ -2561,16 +2561,16 @@ uint32_t mds_mdtm_send_tipc(MDTM_SEND_REQ *req) send message */ uint32_t status = 0; - uint32_t sum_mds_hdr_plus_mdtm_hdr_plus_len; + uint32_t mds_and_mdtm_hdr_len; uint16_t fctrl_seq_num = 0; int version = req->msg_arch_word & 0x7; if (version > 1) { - sum_mds_hdr_plus_mdtm_hdr_plus_len = + mds_and_mdtm_hdr_len = (SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN + gl_mds_mcm_cb->node_name_len); } else { /* sending message to Old version Node */ - sum_mds_hdr_plus_mdtm_hdr_plus_len = + mds_and_mdtm_hdr_len = (SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN - 1); } @@ -2598,13 +2598,13 @@ uint32_t mds_mdtm_send_tipc(MDTM_SEND_REQ *req) /* This is exclusively for the Bcast ENC and ENC_FLAT case */ if (recv.msg.encoding == MDS_ENC_TYPE_FULL) { ncs_dec_init_space(&recv.msg.data.fullenc_uba, - recv.msg.data.fullenc_uba.start); + recv.msg.data.fullenc_uba.start); recv.msg_arch_word = req->msg_arch_word; } else if (recv.msg.encoding == MDS_ENC_TYPE_FLAT) { /* This case will not arise, but just to be on safe side */ ncs_dec_init_space(&recv.msg.data.flat_uba, - recv.msg.data.flat_uba.start); + recv.msg.data.flat_uba.start); } else { /* Do nothing for the DIrect buff and Copy case */ } @@ -2620,19 +2620,18 @@ uint32_t mds_mdtm_send_tipc(MDTM_SEND_REQ *req) uint32_t frag_seq_num = 0, node_status = 0; node_status = m_MDS_CHECK_NCS_NODE_ID_RANGE( - m_MDS_GET_NODE_ID_FROM_ADEST(req->adest)); + m_MDS_GET_NODE_ID_FROM_ADEST(req->adest)); if (NCSCC_RC_SUCCESS == node_status) { tipc_id.node = m_MDS_GET_TIPC_NODE_ID_FROM_NCS_NODE_ID( - m_MDS_GET_NODE_ID_FROM_ADEST(req->adest)); + m_MDS_GET_NODE_ID_FROM_ADEST(req->adest)); tipc_id.ref = (uint32_t)(req->adest); } else { - if (req->snd_type != - MDS_SENDTYPE_ACK) { /* This check is becoz in ack - cases we are only sending the - hdr and no data part is being - send, so no message free , - fix me */ + if (req->snd_type != MDS_SENDTYPE_ACK) { + /* This check is becoz in ack cases we are only + * sending the hdr and no data part is being + * send, so no message free. fix me + */ mdtm_free_reassem_msg_mem(&req->msg); } return NCSCC_RC_FAILURE; @@ -2643,43 +2642,45 @@ uint32_t mds_mdtm_send_tipc(MDTM_SEND_REQ *req) /* Only for the ack and not for any other message */ if (req->snd_type == MDS_SENDTYPE_ACK || req->snd_type == MDS_SENDTYPE_RACK) { - uint8_t len = sum_mds_hdr_plus_mdtm_hdr_plus_len; + uint8_t len = mds_and_mdtm_hdr_len; uint8_t buffer_ack[len]; /* Add mds_hdr */ - if (NCSCC_RC_SUCCESS != - mdtm_add_mds_hdr(buffer_ack, req)) { + if (mdtm_add_mds_hdr(buffer_ack, req) + != NCSCC_RC_SUCCESS) { + return NCSCC_RC_FAILURE; + } + /* if sndqueue is capable, then obtain the current + * sending seq + */ + if (mds_tipc_fctrl_sndqueue_capable(tipc_id, + &fctrl_seq_num) == NCSCC_RC_FAILURE){ + m_MDS_LOG_ERR("FCTRL: Failed to send message" + " len :%d", len); return NCSCC_RC_FAILURE; } - /* if sndqueue is capable, then obtain the current sending seq */ - if (mds_tipc_fctrl_sndqueue_capable(tipc_id, &fctrl_seq_num) - == NCSCC_RC_FAILURE){ - m_MDS_LOG_ERR("FCTRL: Failed to send message len :%d", len); - return NCSCC_RC_FAILURE; - } /* Add frag_hdr */ - if (NCSCC_RC_SUCCESS != - mdtm_add_frag_hdr(buffer_ack, len, frag_seq_num, - 0, fctrl_seq_num)) { + if (mdtm_add_frag_hdr(buffer_ack, len, frag_seq_num, + 0, fctrl_seq_num) != NCSCC_RC_SUCCESS) { return NCSCC_RC_FAILURE; } - m_MDS_LOG_DBG( - "MDTM:Sending message with Service Seqno=%d, TO Dest_Tipc_id=<0x%08x:%u> ", - req->svc_seq_num, tipc_id.node, tipc_id.ref); + m_MDS_LOG_DBG("MDTM:Sending message with Service" + " Seqno=%d, TO Dest_Tipc_id=<0x%08x:%u> ", + req->svc_seq_num, tipc_id.node, tipc_id.ref); return mdtm_sendto(buffer_ack, len, tipc_id); } - if (MDS_ENC_TYPE_FLAT == req->msg.encoding) { + if (req->msg.encoding == MDS_ENC_TYPE_FLAT) { usrbuf = req->msg.data.flat_uba.start; - } else if (MDS_ENC_TYPE_FULL == req->msg.encoding) { + } else if (req->msg.encoding == MDS_ENC_TYPE_FULL) { usrbuf = req->msg.data.fullenc_uba.start; } else { - usrbuf = NULL; /* This is because, usrbuf is used only - in the above two cases and if it has - come here, it means, it is a direct - send. Direct send will not use the - USRBUF */ + /* This is because, usrbuf is used only in the above + * two cases and if it has come here, it means, it is + * a direct send. Direct send will not use the USRBUF + */ + usrbuf = NULL; } switch (req->msg.encoding) { @@ -2690,136 +2691,144 @@ uint32_t mds_mdtm_send_tipc(MDTM_SEND_REQ *req) case MDS_ENC_TYPE_FLAT: case MDS_ENC_TYPE_FULL: { uint32_t len = 0; - len = m_MMGR_LINK_DATA_LEN( - usrbuf); /* Getting total len */ - - m_MDS_LOG_INFO( - "MDTM: User Sending Data lenght=%d From svc_id = %s(%d) to svc_id = %s(%d)\n", - len, get_svc_names(req->src_svc_id), - req->src_svc_id, get_svc_names(req->dest_svc_id), - req->dest_svc_id); - - // determine fragment limit using a bit in destination - // archword + /* Getting total len */ + len = m_MMGR_LINK_DATA_LEN(usrbuf); + + m_MDS_LOG_INFO("MDTM: User Sending Data lenght=%d" + " From svc_id = %s(%d) to svc_id = %s(%d)\n", + len, get_svc_names(req->src_svc_id), + req->src_svc_id, + get_svc_names(req->dest_svc_id), + req->dest_svc_id); + + /* determine fragment limit using a bit in destination + * archword + */ int frag_size; + if (version > 0) { - // normal mode, use TIPC fragmentation + /* normal mode, use TIPC fragmentation */ frag_size = MDS_DIRECT_BUF_MAXSIZE; } else { - // old mode, use some TIPC fragmentation but not - // full capabilities + /* old mode, use some TIPC fragmentation but + * not full capabilities + */ frag_size = MDTM_NORMAL_MSG_FRAG_SIZE; } if (len > frag_size) { /* Packet needs to be fragmented and send */ - m_MDS_LOG_DBG( - "MDTM: User fragment and Sending Data lenght=%d From svc_id = %s(%d) to svc_id = %s(%d)\n", - len, get_svc_names(req->src_svc_id), - req->src_svc_id, - get_svc_names(req->dest_svc_id), - req->dest_svc_id); + m_MDS_LOG_DBG("MDTM: User fragment and Sending" + " Data lenght=%d From svc_id = %s(%d)" + " to svc_id = %s(%d)\n", len, + get_svc_names(req->src_svc_id), + req->src_svc_id, + get_svc_names(req->dest_svc_id), + req->dest_svc_id); return mdtm_frag_and_send(req, frag_seq_num, - tipc_id, frag_size); + tipc_id, frag_size); } else { uint8_t *p8; uint8_t *body = NULL; - body = calloc( - 1, - len + sum_mds_hdr_plus_mdtm_hdr_plus_len); - - p8 = (uint8_t *)m_MMGR_DATA_AT_START( - usrbuf, len, - (char - *)(body + - sum_mds_hdr_plus_mdtm_hdr_plus_len)); - - if (p8 != - (body + sum_mds_hdr_plus_mdtm_hdr_plus_len)) - memcpy( - (body + - sum_mds_hdr_plus_mdtm_hdr_plus_len), - p8, len); - - if (NCSCC_RC_SUCCESS != - mdtm_add_mds_hdr(body, req)) { - m_MDS_LOG_ERR( - "MDTM: Unable to add the mds Hdr to the send msg\n"); + + body = calloc(1, len + + mds_and_mdtm_hdr_len); + + p8 = (uint8_t *)m_MMGR_DATA_AT_START(usrbuf, + len, + (char *)(body + mds_and_mdtm_hdr_len)); + + if (p8 != (body + mds_and_mdtm_hdr_len)) { + memcpy((body + mds_and_mdtm_hdr_len), + p8, len); + } + + if (mdtm_add_mds_hdr(body, req) + != NCSCC_RC_SUCCESS) { + m_MDS_LOG_ERR("MDTM: Unable to add the" + " mds Hdr to the send msg\n"); m_MMGR_FREE_BUFR_LIST(usrbuf); free(body); return NCSCC_RC_FAILURE; } - /* if sndqueue is capable, then obtain the current sending seq */ + /* if sndqueue is capable, then obtain the + * current sending seq + */ if (mds_tipc_fctrl_sndqueue_capable(tipc_id, &fctrl_seq_num) == NCSCC_RC_FAILURE){ - m_MDS_LOG_ERR("FCTRL: Failed to send message len :%d", - len + sum_mds_hdr_plus_mdtm_hdr_plus_len); + m_MDS_LOG_ERR("FCTRL: Failed to send" + " message len :%d", + len + + mds_and_mdtm_hdr_len); m_MMGR_FREE_BUFR_LIST(usrbuf); free(body); return NCSCC_RC_FAILURE; } - if (NCSCC_RC_SUCCESS != - mdtm_add_frag_hdr( - body, - (len + - sum_mds_hdr_plus_mdtm_hdr_plus_len), - frag_seq_num, 0, fctrl_seq_num)) { - m_MDS_LOG_ERR( - "MDTM: Unable to add the frag Hdr to the send msg\n"); + if (mdtm_add_frag_hdr(body, + (len + mds_and_mdtm_hdr_len), + frag_seq_num, 0, fctrl_seq_num) + != NCSCC_RC_SUCCESS) { + m_MDS_LOG_ERR("MDTM: Unable to add the" + " frag Hdr to the send msg\n"); m_MMGR_FREE_BUFR_LIST(usrbuf); free(body); return NCSCC_RC_FAILURE; } - m_MDS_LOG_DBG( - "MDTM:Sending message with Service Seqno=%d, TO Dest_Tipc_id=<0x%08x:%u> ", - req->svc_seq_num, tipc_id.node, - tipc_id.ref); + m_MDS_LOG_DBG("MDTM:Sending message with" + " Service Seqno=%d, TO" + " Dest_Tipc_id=<0x%08x:%u> ", + req->svc_seq_num, tipc_id.node, + tipc_id.ref); - len += sum_mds_hdr_plus_mdtm_hdr_plus_len; + len += mds_and_mdtm_hdr_len; if (((req->snd_type == MDS_SENDTYPE_RBCAST) || - (req->snd_type == MDS_SENDTYPE_BCAST)) && + (req->snd_type == MDS_SENDTYPE_BCAST)) && (version > 0) && (tipc_mcast_enabled)) { - m_MDS_LOG_DBG( - "MDTM: User Sending Multicast Data lenght=%d From svc_id = %s(%d) to svc_id = %s(%d)\n", - len, get_svc_names(req->src_svc_id), - req->src_svc_id, - get_svc_names(req->dest_svc_id), - req->dest_svc_id); - if (len - sum_mds_hdr_plus_mdtm_hdr_plus_len > MDS_DIRECT_BUF_MAXSIZE) { + m_MDS_LOG_DBG("MDTM: User Sending" + " Multicast Data lenght=%d" + " From svc_id = %s(%d) to" + " svc_id = %s(%d)\n", len, + get_svc_names(req->src_svc_id), + req->src_svc_id, + get_svc_names(req->dest_svc_id), + req->dest_svc_id); + if (len - mds_and_mdtm_hdr_len > + MDS_DIRECT_BUF_MAXSIZE) { m_MMGR_FREE_BUFR_LIST(usrbuf); free(body); - LOG_NO( - "MDTM: Not possible to send size:%d TIPC multicast to svc_id = %s(%d)", - len, - get_svc_names( - req->dest_svc_id), - req->dest_svc_id); + LOG_NO("MDTM: Not possible to" + " send size:%d TIPC" + " multicast to svc_id" + " = %s(%d)", len, + get_svc_names(req->dest_svc_id), + req->dest_svc_id); return NCSCC_RC_FAILURE; } - if (NCSCC_RC_SUCCESS != - mdtm_mcast_sendto(body, len, req)) { - m_MDS_LOG_ERR( - "MDTM: Failed to send Multicast message Data lenght=%d " - "From svc_id = %s(%d) to svc_id = %s(%d) err :%s", - len, - get_svc_names( - req->src_svc_id), - req->src_svc_id, - get_svc_names( - req->dest_svc_id), - req->dest_svc_id, - strerror(errno)); + if (mdtm_mcast_sendto(body, len, req) + != NCSCC_RC_SUCCESS) { + m_MDS_LOG_ERR("MDTM: Failed to" + " send Multicast" + " message Data lenght=%d" + " From svc_id = %s(%d)" + " to svc_id = %s(%d)" + " err :%s", len, + get_svc_names(req->src_svc_id), + req->src_svc_id, + get_svc_names(req->dest_svc_id), + req->dest_svc_id, + strerror(errno)); m_MMGR_FREE_BUFR_LIST(usrbuf); free(body); return NCSCC_RC_FAILURE; } } else { - if (NCSCC_RC_SUCCESS != - mdtm_sendto(body, len, tipc_id)) { - m_MDS_LOG_ERR( - "MDTM: Unable to send the msg thru TIPC\n"); + if (mdtm_sendto(body, len, tipc_id) + != NCSCC_RC_SUCCESS) { + m_MDS_LOG_ERR("MDTM: Unable to" + " send the msg thru" + " TIPC\n"); m_MMGR_FREE_BUFR_LIST(usrbuf); free(body); return NCSCC_RC_FAILURE; @@ -2833,81 +2842,88 @@ uint32_t mds_mdtm_send_tipc(MDTM_SEND_REQ *req) case MDS_ENC_TYPE_DIRECT_BUFF: { if (req->msg.data.buff_info.len > - (MDTM_MAX_DIRECT_BUFF_SIZE - - sum_mds_hdr_plus_mdtm_hdr_plus_len)) { - m_MDS_LOG_CRITICAL( - "MDTM: Passed pkt len is more than the single send direct buff\n"); + (MDTM_MAX_DIRECT_BUFF_SIZE - + mds_and_mdtm_hdr_len)) { + m_MDS_LOG_CRITICAL("MDTM: Passed pkt len is" + " more than the single send direct" + " buff\n"); mds_free_direct_buff( - req->msg.data.buff_info.buff); + req->msg.data.buff_info.buff); return NCSCC_RC_FAILURE; } - m_MDS_LOG_INFO( - "MDTM: User Sending Data len=%d From svc_id = %s(%d) to svc_id = %s(%d)\n", - req->msg.data.buff_info.len, - get_svc_names(req->src_svc_id), req->src_svc_id, - get_svc_names(req->dest_svc_id), req->dest_svc_id); + m_MDS_LOG_INFO("MDTM: User Sending Data len=%d From" + " svc_id = %s(%d) to svc_id = %s(%d)\n", + req->msg.data.buff_info.len, + get_svc_names(req->src_svc_id), + req->src_svc_id, + get_svc_names(req->dest_svc_id), + req->dest_svc_id); uint8_t *body = NULL; - body = calloc(1, (req->msg.data.buff_info.len + - sum_mds_hdr_plus_mdtm_hdr_plus_len)); - if (NCSCC_RC_SUCCESS != mdtm_add_mds_hdr(body, req)) { - m_MDS_LOG_ERR( - "MDTM: Unable to add the mds Hdr to the send msg\n"); + body = calloc(1, (req->msg.data.buff_info.len + + mds_and_mdtm_hdr_len)); + + if (mdtm_add_mds_hdr(body, req) != NCSCC_RC_SUCCESS) { + m_MDS_LOG_ERR("MDTM: Unable to add the mds Hdr" + " to the send msg\n"); free(body); mds_free_direct_buff( - req->msg.data.buff_info.buff); + req->msg.data.buff_info.buff); return NCSCC_RC_FAILURE; } - /* if sndqueue is capable, then obtain the current sending seq */ + /* if sndqueue is capable, then obtain the current + * sending seq + */ if (mds_tipc_fctrl_sndqueue_capable(tipc_id, &fctrl_seq_num) == NCSCC_RC_FAILURE) { - m_MDS_LOG_ERR("FCTRL: Failed to send message len :%d", - req->msg.data.buff_info.len + sum_mds_hdr_plus_mdtm_hdr_plus_len); + m_MDS_LOG_ERR("FCTRL: Failed to send message" + " len :%d", + req->msg.data.buff_info.len + + mds_and_mdtm_hdr_len); free(body); - mds_free_direct_buff(req->msg.data.buff_info.buff); + mds_free_direct_buff( + req->msg.data.buff_info.buff); return NCSCC_RC_FAILURE; } - if (NCSCC_RC_SUCCESS != - mdtm_add_frag_hdr( - body, + if (mdtm_add_frag_hdr(body, req->msg.data.buff_info.len + - sum_mds_hdr_plus_mdtm_hdr_plus_len, - frag_seq_num, 0, fctrl_seq_num)) { - m_MDS_LOG_ERR( - "MDTM: Unable to add the frag Hdr to the send msg\n"); + mds_and_mdtm_hdr_len, frag_seq_num, 0, + fctrl_seq_num) != NCSCC_RC_SUCCESS) { + m_MDS_LOG_ERR("MDTM: Unable to add the frag" + " Hdr to the send msg\n"); free(body); mds_free_direct_buff( - req->msg.data.buff_info.buff); + req->msg.data.buff_info.buff); return NCSCC_RC_FAILURE; } - memcpy(&body[sum_mds_hdr_plus_mdtm_hdr_plus_len], - req->msg.data.buff_info.buff, - req->msg.data.buff_info.len); - - if (NCSCC_RC_SUCCESS != - mdtm_sendto(body, - (req->msg.data.buff_info.len + - sum_mds_hdr_plus_mdtm_hdr_plus_len), - tipc_id)) { - m_MDS_LOG_ERR( - "MDTM: Unable to send the msg thru TIPC\n"); + memcpy(&body[mds_and_mdtm_hdr_len], + req->msg.data.buff_info.buff, + req->msg.data.buff_info.len); + + if (mdtm_sendto(body, + (req->msg.data.buff_info.len + + mds_and_mdtm_hdr_len), tipc_id) + != NCSCC_RC_SUCCESS) { + m_MDS_LOG_ERR("MDTM: Unable to send the msg" + " thru TIPC\n"); free(body); mds_free_direct_buff( - req->msg.data.buff_info.buff); + req->msg.data.buff_info.buff); return NCSCC_RC_FAILURE; } /* If Direct Send is bcast it will be done at bcast - * function */ + * function + */ if (req->snd_type == MDS_SENDTYPE_BCAST || - req->snd_type == MDS_SENDTYPE_RBCAST) { + req->snd_type == MDS_SENDTYPE_RBCAST) { /* Dont free Here */ } else { mds_free_direct_buff( - req->msg.data.buff_info.buff); + req->msg.data.buff_info.buff); } free(body); return NCSCC_RC_SUCCESS; @@ -2951,21 +2967,21 @@ uint32_t mdtm_frag_and_send(MDTM_SEND_REQ *req, uint32_t seq_num, uint8_t *p8; uint16_t i = 1; uint16_t frag_val = 0; - uint32_t sum_mds_hdr_plus_mdtm_hdr_plus_len; + uint32_t mds_and_mdtm_hdr_len; uint16_t fctrl_seq_num = 0; int version = req->msg_arch_word & 0x7; uint32_t ret = NCSCC_RC_SUCCESS; if (version > 1) { - sum_mds_hdr_plus_mdtm_hdr_plus_len = + mds_and_mdtm_hdr_len = (SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN + gl_mds_mcm_cb->node_name_len); } else { - sum_mds_hdr_plus_mdtm_hdr_plus_len = + mds_and_mdtm_hdr_len = (SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN - 1); } - int max_send_pkt_size = frag_size + sum_mds_hdr_plus_mdtm_hdr_plus_len; + int max_send_pkt_size = frag_size + mds_and_mdtm_hdr_len; switch (req->msg.encoding) { case MDS_ENC_TYPE_FULL: @@ -2984,10 +3000,9 @@ uint32_t mdtm_frag_and_send(MDTM_SEND_REQ *req, uint32_t seq_num, /* We have 15 bits for frag number so 2( pow 15) -1=32767 */ if (len > (32767 * frag_size)) { - m_MDS_LOG_CRITICAL( - "MDTM: App. is trying to send data more than MDTM Can fragment " - "and send, Max size is =%d\n", - 32767 * frag_size); + m_MDS_LOG_CRITICAL("MDTM: App. is trying to send data more" + " than MDTM Can fragment and send, Max size is =%d\n", + 32767 * frag_size); m_MMGR_FREE_BUFR_LIST(usrbuf); return NCSCC_RC_FAILURE; } @@ -3012,72 +3027,79 @@ uint32_t mdtm_frag_and_send(MDTM_SEND_REQ *req, uint32_t seq_num, len_buf = len + MDTM_FRAG_HDR_PLUS_LEN_2; frag_val = NO_FRAG_BIT | i; } - { - uint32_t hdr_plus = (i == 1) ? - sum_mds_hdr_plus_mdtm_hdr_plus_len : MDTM_FRAG_HDR_PLUS_LEN_2; - uint8_t *body = NULL; - body = calloc(1, len_buf); - p8 = (uint8_t *)m_MMGR_DATA_AT_START(usrbuf, len_buf - hdr_plus, - (char *)(body + hdr_plus)); - if (p8 != (body + hdr_plus)) - memcpy((body + hdr_plus), p8, len_buf - hdr_plus); - if (i == 1) { - if (NCSCC_RC_SUCCESS != - mdtm_add_mds_hdr(body, req)) { - m_MDS_LOG_ERR( - "MDTM: frg MDS hdr addition failed\n"); - m_MMGR_FREE_BUFR_LIST(usrbuf); - free(body); - return NCSCC_RC_FAILURE; - } - } - /* if sndqueue is capable, then obtain the current sending seq */ - if (mds_tipc_fctrl_sndqueue_capable(id, &fctrl_seq_num) - == NCSCC_RC_FAILURE) { - m_MDS_LOG_ERR("FCTRL: Failed to send message len :%d", len_buf); - m_MMGR_FREE_BUFR_LIST(usrbuf); - free(body); - return NCSCC_RC_FAILURE; - } - if (NCSCC_RC_SUCCESS != - mdtm_add_frag_hdr(body, len_buf, seq_num, - frag_val, fctrl_seq_num)) { - m_MDS_LOG_ERR( - "MDTM: Frag hde addition failed\n"); + uint32_t hdr_plus = (i == 1) ? + mds_and_mdtm_hdr_len : MDTM_FRAG_HDR_PLUS_LEN_2; + uint8_t *body = NULL; + + body = calloc(1, len_buf); + p8 = (uint8_t *)m_MMGR_DATA_AT_START(usrbuf, + len_buf - hdr_plus, + (char *)(body + hdr_plus)); + if (p8 != (body + hdr_plus)) + memcpy((body + hdr_plus), p8, len_buf - hdr_plus); + if (i == 1) { + if (mdtm_add_mds_hdr(body, req) + != NCSCC_RC_SUCCESS) { + m_MDS_LOG_ERR("MDTM: frg MDS hdr" + " addition failed\n"); m_MMGR_FREE_BUFR_LIST(usrbuf); free(body); return NCSCC_RC_FAILURE; } - if (((req->snd_type == MDS_SENDTYPE_RBCAST) || - (req->snd_type == MDS_SENDTYPE_BCAST)) && - (version > 0) && (tipc_mcast_enabled)) { - m_MDS_LOG_DBG( - "MDTM:Send Multicast message with Service Seqno=%d, Fragment Seqnum=%d, frag_num=%d " - "From svc_id = %s(%d) TO svc_id = %s(%d)", - req->svc_seq_num, seq_num, frag_val, - get_svc_names(req->src_svc_id), req->src_svc_id, - get_svc_names(req->dest_svc_id), req->dest_svc_id); - ret = mdtm_mcast_sendto(body, len_buf, req); - } else { - m_MDS_LOG_DBG( - "MDTM:Sending message with Service Seqno=%d, Fragment Seqnum=%d, frag_num=%d, TO Dest_Tipc_id=<0x%08x:%u>", - req->svc_seq_num, seq_num, frag_val, - id.node, id.ref); - ret = mdtm_sendto(body, len_buf, id); - } - if (ret != NCSCC_RC_SUCCESS) { - // Failed to send a fragmented msg, stop sending - m_MMGR_FREE_BUFR_LIST(usrbuf); - free(body); - break; - } - m_MMGR_REMOVE_FROM_START(&usrbuf, len_buf - hdr_plus); + } + /* if sndqueue is capable, then obtain the current + * sending seq + */ + if (mds_tipc_fctrl_sndqueue_capable(id, &fctrl_seq_num) + == NCSCC_RC_FAILURE) { + m_MDS_LOG_ERR("FCTRL: Failed to send message" + " len :%d", len_buf); + m_MMGR_FREE_BUFR_LIST(usrbuf); free(body); - len = len - (len_buf - hdr_plus); - if (len == 0) - break; + return NCSCC_RC_FAILURE; } + if (mdtm_add_frag_hdr(body, len_buf, seq_num, frag_val, + fctrl_seq_num) != NCSCC_RC_SUCCESS) { + m_MDS_LOG_ERR("MDTM: Frag hde addition" + " failed\n"); + m_MMGR_FREE_BUFR_LIST(usrbuf); + free(body); + return NCSCC_RC_FAILURE; + } + if (((req->snd_type == MDS_SENDTYPE_RBCAST) || + (req->snd_type == MDS_SENDTYPE_BCAST)) && + (version > 0) && (tipc_mcast_enabled)) { + m_MDS_LOG_DBG("MDTM:Send Multicast message with" + " Service Seqno=%d, Fragment Seqnum=%d," + " frag_num=%d From svc_id = %s(%d) TO" + " svc_id = %s(%d)", req->svc_seq_num, + seq_num, frag_val, + get_svc_names(req->src_svc_id), + req->src_svc_id, + get_svc_names(req->dest_svc_id), + req->dest_svc_id); + ret = mdtm_mcast_sendto(body, len_buf, req); + } else { + m_MDS_LOG_DBG("MDTM:Sending message with" + " Service Seqno=%d, Fragment" + " Seqnum=%d, frag_num=%d," + " TO Dest_Tipc_id=<0x%08x:%u>", + req->svc_seq_num, seq_num, frag_val, + id.node, id.ref); + ret = mdtm_sendto(body, len_buf, id); + } + if (ret != NCSCC_RC_SUCCESS) { + /* Failed to send a fragmented msg, stop sending */ + m_MMGR_FREE_BUFR_LIST(usrbuf); + free(body); + break; + } + m_MMGR_REMOVE_FROM_START(&usrbuf, len_buf - hdr_plus); + free(body); + len = len - (len_buf - hdr_plus); + if (len == 0) + break; i++; frag_val = 0; } -- 2.7.4 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel