- The confused error in mds log since disabled FCTRL agent receive a flow control message type from enabled FCTRL agent. MDS should ignore flow control message on disabled FCTRL agent. - Also print Adest info detail in logging for easy troubleshoot. --- src/mds/mds_dt_common.c | 65 ++++++++++++++++++---------------- src/mds/mds_tipc_fctrl_intf.cc | 4 +-- 2 files changed, 37 insertions(+), 32 deletions(-)
diff --git a/src/mds/mds_dt_common.c b/src/mds/mds_dt_common.c index ef8425cb9..6f1bd8a2e 100644 --- a/src/mds/mds_dt_common.c +++ b/src/mds/mds_dt_common.c @@ -314,9 +314,11 @@ uint32_t mdtm_process_recv_message_common(uint8_t flag, uint8_t *buffer, * header length */ if (len < len_mds_hdr) { m_MDS_LOG_ERR( - "MDTM: Message recd (Non Fragmented) len is less than the MDS HDR len Adest = <%" PRId64 - "> len =%d len_mds_hdr=%d", - transport_adest, len, len_mds_hdr); + "MDTM: Message recd (Non Fragmented) len is less than the MDS HDR len " + "Adest <0x%08x, %u> len =%d len_mds_hdr=%d", + m_MDS_GET_NODE_ID_FROM_ADEST(transport_adest), + m_MDS_GET_PROCESS_ID_FROM_ADEST(transport_adest), + len, len_mds_hdr); return NCSCC_RC_FAILURE; } @@ -350,10 +352,10 @@ uint32_t mdtm_process_recv_message_common(uint8_t flag, uint8_t *buffer, &dest_svc_hdl)) { *buff_dump = 0; /* For future hack */ m_MDS_LOG_ERR( - "MDTM: svc_id = %s(%d) Doesnt exists for the message recd, Adest = <%" PRId64 - ">\n", + "MDTM: svc_id = %s(%d) Doesnt exists for the message recd, Adest <0x%08x, %u>\n", get_svc_names(dest_svc_id), dest_svc_id, - transport_adest); + m_MDS_GET_NODE_ID_FROM_ADEST(transport_adest), + m_MDS_GET_PROCESS_ID_FROM_ADEST(transport_adest)); return NCSCC_RC_FAILURE; } @@ -365,9 +367,9 @@ uint32_t mdtm_process_recv_message_common(uint8_t flag, uint8_t *buffer, if (enc_type > MDS_ENC_TYPE_DIRECT_BUFF) { *buff_dump = 0; /* For future hack */ m_MDS_LOG_ERR( - "MDTM: Encoding unsupported, Adest = <%" PRId64 - ">\n", - transport_adest); + "MDTM: Encoding unsupported, Adest Adest <0x%08x, %u>\n", + m_MDS_GET_NODE_ID_FROM_ADEST(transport_adest), + m_MDS_GET_PROCESS_ID_FROM_ADEST(transport_adest)); return NCSCC_RC_FAILURE; } @@ -506,9 +508,10 @@ uint32_t mdtm_process_recv_message_common(uint8_t flag, uint8_t *buffer, } m_MDS_LOG_DBG( - "MDTM: Recd Unfragmented message with SVC Seq num =%d, from src Adest = <%" PRId64 - ">", - svc_seq_num, transport_adest); + "MDTM: Recd Unfragmented message with SVC Seq num =%d, from src Adest <0x%08x, %u>", + svc_seq_num, + m_MDS_GET_NODE_ID_FROM_ADEST(transport_adest), + m_MDS_GET_PROCESS_ID_FROM_ADEST(transport_adest)); if (msg_snd_type == MDS_SENDTYPE_ACK) { /* NOTE: Version in ACK message is ignored */ @@ -603,9 +606,9 @@ uint32_t mdtm_process_recv_message_common(uint8_t flag, uint8_t *buffer, if (len <= (len_mds_hdr + MDTM_FRAG_HDR_LEN)) { m_MDS_LOG_ERR( "MDTM: Message recd (Fragmented First Pkt) len is less than or equal to \ - the sum of (len_mds_hdr+MDTM_FRAG_HDR_LEN) len, Adest = <%" PRId64 - ">", - transport_adest); + the sum of (len_mds_hdr+MDTM_FRAG_HDR_LEN) len, Adest <0x%08x, %u>", + m_MDS_GET_NODE_ID_FROM_ADEST(transport_adest), + m_MDS_GET_PROCESS_ID_FROM_ADEST(transport_adest)); return NCSCC_RC_FAILURE; } data = &buffer[MDS_HEADER_PWE_ID_POSITION + MDTM_FRAG_HDR_LEN]; @@ -796,9 +799,10 @@ uint32_t mdtm_process_recv_message_common(uint8_t flag, uint8_t *buffer, m_MDS_LOG_INFO("MDTM: Reassembly started\n"); m_MDS_LOG_DBG( - "MDTM: Recd fragmented message(first frag) with Frag Seqnum=%d SVC Seq num =%d, from src Adest = <%" PRId64 - ">", - seq_num, svc_seq_num, transport_adest); + "MDTM: Recd fragmented message(first frag) with Frag Seqnum=%d SVC Seq num =%d, from src Adest <0x%08x, %u>", + seq_num, svc_seq_num, + m_MDS_GET_NODE_ID_FROM_ADEST(transport_adest), + m_MDS_GET_PROCESS_ID_FROM_ADEST(transport_adest)); if ((len - (len_mds_hdr + MDTM_FRAG_HDR_LEN)) > 0) { if (NCSCC_RC_SUCCESS != @@ -1134,9 +1138,10 @@ uint32_t mdtm_process_recv_data(uint8_t *buffer, uint16_t len, seq_num = ncs_decode_32bit(&data); m_MDS_LOG_DBG( - "MDTM: Recd message with Fragment Seqnum=%d, frag_num=%d, from src_id=<0x%08x:%u>", - seq_num, frag_num, (uint32_t)(transport_adest >> 32), - (uint32_t)(transport_adest)); + "MDTM: Recd message with Fragment Seqnum=%d, frag_num=%d, from Adest <0x%08x, %u>", + seq_num, frag_num, + m_MDS_GET_NODE_ID_FROM_ADEST(transport_adest), + m_MDS_GET_PROCESS_ID_FROM_ADEST(transport_adest)); /* Checking in reassembly queue */ reassem_queue = @@ -1187,9 +1192,9 @@ uint32_t mdtm_process_recv_data(uint8_t *buffer, uint16_t len, easily without having to relink etc. */ m_MDS_LOG_ERR( - "MDTM: Message is dropped as msg is out of seq Adest = <%" PRIu64 - ">\n", - transport_adest); + "MDTM: Message is dropped as msg is out of seq Adest <0x%08x, %u>\n", + m_MDS_GET_NODE_ID_FROM_ADEST(transport_adest), + m_MDS_GET_PROCESS_ID_FROM_ADEST(transport_adest)); return NCSCC_RC_FAILURE; } @@ -1360,9 +1365,9 @@ uint32_t mdtm_process_recv_data(uint8_t *buffer, uint16_t len, easily without having to relink etc. */ m_MDS_LOG_ERR( - "MDTM: Frag recd is not next frag so dropping Adest = <%" PRIu64 - ">\n", - transport_adest); + "MDTM: Frag recd is not next frag so dropping Adest <0x%08x, %u>\n", + m_MDS_GET_NODE_ID_FROM_ADEST(transport_adest), + m_MDS_GET_PROCESS_ID_FROM_ADEST(transport_adest)); reassem_queue ->to_be_dropped = true; /* This is for avoiding the @@ -1409,9 +1414,9 @@ uint32_t mdtm_process_recv_data(uint8_t *buffer, uint16_t len, *buff_dump = 0; /* Some stale message, Log and Drop */ m_MDS_LOG_ERR( - "MDTM: Some stale message recd, hence dropping Adest = <%" PRIu64 - ">\n", - transport_adest); + "MDTM: Some stale message recd, hence dropping Adest <0x%08x, %u>\n", + m_MDS_GET_NODE_ID_FROM_ADEST(transport_adest), + m_MDS_GET_PROCESS_ID_FROM_ADEST(transport_adest)); return NCSCC_RC_FAILURE; } } /* ELSE Loop */ diff --git a/src/mds/mds_tipc_fctrl_intf.cc b/src/mds/mds_tipc_fctrl_intf.cc index 4270cf26a..158ad6941 100644 --- a/src/mds/mds_tipc_fctrl_intf.cc +++ b/src/mds/mds_tipc_fctrl_intf.cc @@ -500,14 +500,13 @@ uint32_t mds_tipc_fctrl_drop_data(uint8_t *buffer, uint16_t len, uint32_t mds_tipc_fctrl_rcv_data(uint8_t *buffer, uint16_t len, struct tipc_portid id) { - if (is_fctrl_enabled == false) return NCSCC_RC_SUCCESS; - uint32_t rc = NCSCC_RC_SUCCESS; HeaderMessage header; header.Decode(buffer); Event* pevt = nullptr; // if mds support flow control if (header.IsControlMessage()) { + if (is_fctrl_enabled == false) return NCSCC_RC_FAILURE; if (header.msg_type_ == ChunkAck::kChunkAckMsgType) { m_MDS_LOG_DBG("FCTRL: Receive ChunkAck"); // receive single ack message @@ -555,6 +554,7 @@ uint32_t mds_tipc_fctrl_rcv_data(uint8_t *buffer, uint16_t len, // skip this data msg rc = NCSCC_RC_FAILURE; } + if (is_fctrl_enabled == false) return NCSCC_RC_SUCCESS; if (header.IsLegacyMessage()) { m_MDS_LOG_DBG("FCTRL: [me] <-- [node:%x, ref:%u], " "Receive legacy data message, " -- 2.17.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel