osaf/libs/core/mds/include/mds_core.h   |    7 +
 osaf/libs/core/mds/include/mds_dt2c.h   |    1 +
 osaf/libs/core/mds/include/mds_dt_tcp.h |    1 +
 osaf/libs/core/mds/mds_c_api.c          |   17 ++-
 osaf/libs/core/mds/mds_c_db.c           |  176 ++++++++++++++++++++++++++++++++
 osaf/libs/core/mds/mds_c_sndrcv.c       |   24 ++-
 osaf/libs/core/mds/mds_dt_common.c      |    1 +
 osaf/libs/core/mds/mds_dt_tcp.c         |    3 +
 osaf/libs/core/mds/mds_dt_tipc.c        |    6 +
 osaf/libs/core/mds/mds_main.c           |    1 +
 10 files changed, 227 insertions(+), 10 deletions(-)


1) Update once adest details in MDS_SUBSCRIPTION_RESULTS_INFO

For now adest will be printed like   Adest = <node[1]:osafamfd[2871]>  for 
local node
This is just being level changes still long way to go.....

 Example :
Aug 14  9:52:26.073064  osafamfd[2871] NOTIFY  |MDTM: svc up event for svc_id = 
IMMND(25), subscri. by svc_id = IMMA_OI(27) pwe_id=1 Adest = 
<node[1]:osafamfd[2871]>
Aug 14  9:52:28.179722  osafclmd[2852] NOTIFY  |MDTM: svc up event for svc_id = 
AVND(13), subscri. by svc_id = CLMS(34) pwe_id=1 Adest = 
<node[1]:osafclmd[2852]>

diff --git a/osaf/libs/core/mds/include/mds_core.h 
b/osaf/libs/core/mds/include/mds_core.h
--- a/osaf/libs/core/mds/include/mds_core.h
+++ b/osaf/libs/core/mds/include/mds_core.h
@@ -159,6 +159,7 @@ typedef struct mds_subscription_results_
        MDS_SVC_ARCHWORD_TYPE rem_svc_arch_word;
        uint32_t  msg_snd_cnt;                  /* Message send count to this 
destination */
        uint32_t  msg_rcv_cnt;                  /* Message rcv count from this 
destination */
+       char sub_adest_details[255]; /* <node[slotno]:processname[pid]> */
 
 } MDS_SUBSCRIPTION_RESULTS_INFO;
 
@@ -188,6 +189,7 @@ typedef struct mds_subscription_info {
          this is Mcast or Bcast differentiators if conut is ZERO mcast else
          count is grater than ZERO bcast (multi-unicast) */    
        uint32_t prev_ver_sub_count; 
+       char sub_adest_details[255]; /* <node[slotno]:processname[pid]> */
 
 } MDS_SUBSCRIPTION_INFO;
 
@@ -277,12 +279,14 @@ typedef struct mds_svc_info {
        bool i_node_subscr;     /* suscription to node */
        MDS_SUBTN_REF_VAL node_subtn_ref_val;  
        bool i_msg_loss_indication;     /* message loss indication if set to 1 
*/
+       char adest_details[255]; /* <node[slotno]:processname[pid]> */
 } MDS_SVC_INFO;
 
 MDS_SVC_INFO *mds_get_svc_info_by_hdl(MDS_SVC_HDL hdl);
 
 typedef struct mds_mcm_cb {
        MDS_DEST adest;
+       char adest_details[255]; /* <node[slotno]:processname[pid]> */
 
        /* List of all subscription results MDS_SUBSCRIPTION_RESULTS_INFO */
        NCS_PATRICIA_TREE subtn_results;
@@ -485,6 +489,9 @@ extern uint32_t mds_mcm_validate_scope(N
 
 extern uint32_t mds_mcm_free_msg_uba_start(MDS_ENCODED_MSG msg);
 
+extern void get_adest_details(MDS_DEST adest, char* adest_details);
+extern void get_subtn_adest_details(MDS_PWE_HDL pwe_hdl, MDS_SVC_ID svc_id,
+               MDS_DEST adest, char* adest_details);
 /* ******************************************** */
 /* ******************************************** */
 /*                 MMGR Macros                  */
diff --git a/osaf/libs/core/mds/include/mds_dt2c.h 
b/osaf/libs/core/mds/include/mds_dt2c.h
--- a/osaf/libs/core/mds/include/mds_dt2c.h
+++ b/osaf/libs/core/mds/include/mds_dt2c.h
@@ -138,6 +138,7 @@ typedef struct mdtm_send_req {
                                   such scheme
                                 */
        MDS_DEST adest;         /* MDTM to do local/remote routing, destination 
adest */
+       char sub_adest_details[255];  /* <node[slotno]:processname[pid]> */
        MDS_SEND_PRIORITY_TYPE pri;
        MDS_CLIENT_MSG_FORMAT_VER msg_fmt_ver;  /* message format version 
specification */
        MDS_SVC_PVT_SUB_PART_VER src_svc_sub_part_ver;
diff --git a/osaf/libs/core/mds/include/mds_dt_tcp.h 
b/osaf/libs/core/mds/include/mds_dt_tcp.h
--- a/osaf/libs/core/mds/include/mds_dt_tcp.h
+++ b/osaf/libs/core/mds/include/mds_dt_tcp.h
@@ -36,6 +36,7 @@ typedef struct mdtm_tcp_cb {
 
        void *mdtm_hdle_task;
        uint64_t adest;
+       char adest_details[255]; /* <node[slotno]:processname[pid]> */
 
        SYSF_MBX tmr_mbx;
        int tmr_fd;
diff --git a/osaf/libs/core/mds/mds_c_api.c b/osaf/libs/core/mds/mds_c_api.c
--- a/osaf/libs/core/mds/mds_c_api.c
+++ b/osaf/libs/core/mds/mds_c_api.c
@@ -25,6 +25,7 @@
 
 #include "mds_core.h"
 #include "mds_log.h"
+#include "mds_core.h"
 
 /*********************************************************
 
@@ -1517,6 +1518,7 @@ uint32_t mds_mcm_svc_up(PW_ENV_ID pwe_id
        MDS_SUBSCRIPTION_RESULTS_INFO *subtn_result_info = NULL;
        MDS_SUBSCRIPTION_RESULTS_INFO *active_subtn_result_info = NULL;
        MDS_SUBSCRIPTION_RESULTS_INFO *next_active_result_info = NULL;
+       MDS_SUBSCRIPTION_RESULTS_INFO *log_subtn_result_info = NULL;
 
        m_MDS_LOG_DBG("MCM_API : Entering : mds_mcm_svc_up : Details below :");
        m_MDS_LOG_DBG("MCM_API : LOCAL SVC INFO : SVC id = %d | PWE id = %d | 
VDEST id = %d |",
@@ -1627,11 +1629,14 @@ else (entry exists)
 
     /*************** Validation for SCOPE **********************/
 
-       status = mds_subtn_res_tbl_query_by_adest(local_svc_hdl, svc_id, 
vdest_id, adest);
+       status = mds_get_subtn_res_tbl_by_adest(local_svc_hdl, svc_id, 
vdest_id, adest, &log_subtn_result_info);
 
        if (status == NCSCC_RC_FAILURE) {       /* Subscription result tabel 
entry doesn't exist */
 
                if (vdest_id == m_VDEST_ID_FOR_ADEST_ENTRY) {   /* Remote svc 
is on ADEST */
+                       char to_adest_details[255];
+                       
get_subtn_adest_details(m_MDS_GET_PWE_HDL_FROM_SVC_HDL(local_svc_hdl),
+                                       svc_id, adest, to_adest_details);
 
                        mds_subtn_res_tbl_add(local_svc_hdl, svc_id,
                                              (MDS_VDEST_ID)vdest_id, adest, 
role,
@@ -1669,6 +1674,9 @@ else (entry exists)
                                                                       
&tmr_running, &subtn_result_info, true);
                                        /* check if any other active present */
                                        if (status == NCSCC_RC_FAILURE) {       
/* No active present */
+                                               char to_adest_details[255];
+                                               
get_subtn_adest_details(m_MDS_GET_PWE_HDL_FROM_SVC_HDL(local_svc_hdl),
+                                                               svc_id, 
active_adest, to_adest_details);
                                                /* Add entry to subscription 
result table */
                                                status = 
mds_subtn_res_tbl_add(local_svc_hdl,
                                                                               
svc_id,
@@ -2556,6 +2564,7 @@ uint32_t mds_mcm_svc_down(PW_ENV_ID pwe_
        bool tmr_running;
        MDS_SUBSCRIPTION_RESULTS_INFO *subtn_result_info = NULL;
        MDS_SUBSCRIPTION_RESULTS_INFO *next_active_result_info = NULL;
+       MDS_SUBSCRIPTION_RESULTS_INFO *log_subtn_result_info = NULL;
        V_DEST_RL dest_role;
 
        m_MDS_LOG_DBG("MCM_API : Entering : mds_mcm_svc_down : Details below 
:");
@@ -2669,7 +2678,7 @@ else (entry exists)
        }
     /*************** Validation for SCOPE **********************/
 
-       status = mds_subtn_res_tbl_query_by_adest(local_svc_hdl, svc_id, 
(MDS_VDEST_ID)vdest_id, adest);
+       status = mds_get_subtn_res_tbl_by_adest(local_svc_hdl, svc_id, 
(MDS_VDEST_ID)vdest_id, adest, &log_subtn_result_info);
        if (status == NCSCC_RC_FAILURE) {       /* Subscription result tabel 
entry doesn't exist */
 
                /* Discard : Getting down before getting up */
@@ -3375,6 +3384,8 @@ uint32_t mds_mcm_user_event_callback(MDS
        if (vdest_id == m_VDEST_ID_FOR_ADEST_ENTRY) {
                /* Service is on remote ADEST */
                cbinfo->info.svc_evt.i_dest = adest;
+               if ((event_type == NCSMDS_UP) || (event_type == NCSMDS_RED_UP))
+                       get_adest_details(adest, 
cbinfo->info.svc_evt.i_dest_details);
                cbinfo->info.svc_evt.i_anc = 0; /* anchor same as adest */
        } else {
                /* Service is on remote VDEST */
@@ -3382,6 +3393,8 @@ uint32_t mds_mcm_user_event_callback(MDS
 
                if (event_type == NCSMDS_RED_UP || event_type == 
NCSMDS_RED_DOWN || event_type == NCSMDS_CHG_ROLE) {
                        cbinfo->info.svc_evt.i_anc = adest;     /* anchor same 
as adest */
+                       if (event_type == NCSMDS_RED_UP)
+                               get_adest_details(adest, 
cbinfo->info.svc_evt.i_dest_details);
                } else {
                        cbinfo->info.svc_evt.i_anc = 0;
                }
diff --git a/osaf/libs/core/mds/mds_c_db.c b/osaf/libs/core/mds/mds_c_db.c
--- a/osaf/libs/core/mds/mds_c_db.c
+++ b/osaf/libs/core/mds/mds_c_db.c
@@ -25,6 +25,177 @@
 
 #include "mds_core.h"
 #include "mds_log.h"
+#include "ncs_main_papi.h"
+extern char *tipc_or_tcp;
+extern uint32_t mds_mcm_check_intranode(MDS_DEST adest);
+/*****************************************************
+Function NAME: get_adest_details()
+Returns : <node[slotno]:processname[pid]>
+*****************************************************/
+void get_adest_details(MDS_DEST adest, char* adest_details)
+{
+        char *token;
+        struct stat s;
+        uint32_t process_id = 0;
+        NCS_PHY_SLOT_ID phy_slot;
+        NCS_SUB_SLOT_ID sub_slot;
+        char name[1024];
+        char process_name[255];
+        bool remote = false;
+        memset(adest_details, 0, sizeof(adest_details));
+ 
+        m_NCS_GET_PHYINFO_FROM_NODE_ID(m_NCS_NODE_ID_FROM_MDS_DEST(adest), 
NULL, &phy_slot, &sub_slot);
+ 
+        if (strcmp(tipc_or_tcp, "TCP") == 0) {
+                process_id = m_MDS_GET_PROCESS_ID_FROM_ADEST(adest);
+                if (NCSCC_RC_SUCCESS == mds_mcm_check_intranode(adest)) {
+                        sprintf(name, "/proc/%d/cmdline", process_id);
+                        if(stat(name, &s) != 0) {
+                                sprintf(process_name, "pid[%u]", process_id);
+                        } else {
+ 
+                                FILE* f = fopen(name,"r");
+                                if(f){
+                                        size_t size;
+                                        size = fread(name, sizeof(char), 1024, 
f);
+                                        if(size>0){
+                                                if('\n' == name[size-1])
+                                                        name[size-1]='\0';
+                                        }
+                                        fclose(f);
+                                }
+                                token = strtok(name, "/");
+                                while( token != NULL )
+                                {
+                                        strcpy(name,token);
+                                        token = strtok(NULL, "/");
+                                }
+                                sprintf(process_name, "%s[%u]", name, 
process_id);
+                        }
+ 
+                } else {
+                        sprintf(process_name, "dest_pid[%u]", process_id);
+                        remote = true;
+                }
+        } else  if (strcmp(tipc_or_tcp, "TIPC") == 0) {
+                process_id = getpid();
+                if (NCSCC_RC_SUCCESS == mds_mcm_check_intranode(adest)) {
+                        sprintf(name, "/proc/%d/cmdline", process_id);
+                        if(stat(name, &s) != 0) {
+                                sprintf(process_name, "tipc_id_ref[%u]", 
process_id);
+                        } else {
+ 
+                                FILE* f = fopen(name,"r");
+                                if(f){
+                                        size_t size;
+                                        size = fread(name, sizeof(char), 1024, 
f);
+                                        if(size>0){
+                                                if('\n' == name[size-1])
+                                                        name[size-1]='\0';
+                                        }
+                                        fclose(f);
+                                }
+                                token = strtok(name, "/");
+                                while( token != NULL )
+                                {
+                                        strcpy(name,token);
+                                        token = strtok(NULL, "/");
+                                }
+                                sprintf(process_name, "%s[%u]", name, 
process_id);
+                        }
+ 
+                } else {
+ 
+                        process_id = m_MDS_GET_PROCESS_ID_FROM_ADEST(adest);
+                        sprintf(process_name, 
"dest_tipc_id_ref[%u]",process_id);
+                        remote = true;
+                }
+        }
+ 
+        if (remote == true)
+                sprintf(adest_details, "<rem_node[%d]:%s>",
+                                phy_slot, process_name);
+        else
+                sprintf(adest_details, "<node[%d]:%s>",
+                                phy_slot, process_name);
+ 
+        m_MDS_LOG_DBG("MCM_DB : Leaving : F : get_adest_details adest_details: 
%s ", adest_details);
+}
+ 
+ 
+/*****************************************************
+  Function NAME: get_subtn_adest_details 
+  Returns : <node[slotno]:processname[pid]>
+ *****************************************************/
+void get_subtn_adest_details(MDS_PWE_HDL pwe_hdl, MDS_SVC_ID svc_id, MDS_DEST 
adest, char* adest_details)
+{
+        uint32_t process_id = 0;
+        NCS_PHY_SLOT_ID phy_slot;
+        NCS_SUB_SLOT_ID sub_slot;
+        char process_name[255];
+        bool remote = false;
+        MDS_SVC_INFO *svc_info = NULL;
+ 
+        char name[1024];
+        char *token;
+        struct stat s;
+ 
+        memset(adest_details, 0, sizeof(adest_details));
+        m_NCS_GET_PHYINFO_FROM_NODE_ID(m_NCS_NODE_ID_FROM_MDS_DEST(adest), 
NULL, &phy_slot, &sub_slot);
+        process_id = m_MDS_GET_PROCESS_ID_FROM_ADEST(adest);
+ 
+        if (NCSCC_RC_SUCCESS == mds_mcm_check_intranode(adest)) {
+                if (NCSCC_RC_SUCCESS == mds_svc_tbl_get(pwe_hdl, svc_id, 
(NCSCONTEXT)&svc_info)) {
+                        strcpy(adest_details, svc_info->adest_details);
+                        goto done;
+                } else if (strcmp(tipc_or_tcp, "TCP") == 0) {
+ 
+                        sprintf(name, "/proc/%d/cmdline", process_id);
+                        if(stat(name, &s) != 0) {
+                                sprintf(process_name, "pid[%u]", process_id);
+                        } else {
+ 
+                                FILE* f = fopen(name,"r");
+                                if(f){
+                                        size_t size;
+                                        size = fread(name, sizeof(char), 1024, 
f);
+                                        if(size>0){
+                                                if('\n' == name[size-1])
+                                                        name[size-1]='\0';
+                                        }
+                                        fclose(f);
+                                }
+                                token = strtok(name, "/");
+                                while( token != NULL )
+                                {
+                                        strcpy(name,token);
+                                        token = strtok(NULL, "/");
+                                }
+                                sprintf(process_name, "%s[%u]", name, 
process_id);
+                        }
+                } else {
+                        /* Service Doesn't exist */
+                        sprintf(process_name, "tipc_id_ref[%u]", process_id);
+                }
+        } else {
+                if (strcmp(tipc_or_tcp, "TCP") == 0) {
+                        sprintf(process_name, "dest_pid[%u]", process_id);
+                        remote = true;
+                } else {
+                        sprintf(process_name, 
"dest_tipc_id_ref[%u]",process_id);
+                        remote = true;
+                }
+        }
+ 
+        if (remote == true)
+                sprintf(adest_details, "<rem_node[%d]:%s>",
+                                phy_slot, process_name);
+        else
+                sprintf(adest_details, "<node[%d]:%s>",
+                                phy_slot, process_name);
+done:
+        m_MDS_LOG_DBG("MCM_DB : Leaving : F : get_subtn_adest_details 
adest_details: %s ", adest_details);
+}
 
 /* ******************************************** */
 /* ******************************************** */
@@ -574,6 +745,7 @@ uint32_t mds_svc_tbl_add(NCSMDS_INFO *in
                info->info.svc_install.o_sel_obj = 
m_NCS_IPC_GET_SEL_OBJ(&svc_info->q_mbx);
        }
 
+       strcpy(svc_info->adest_details, gl_mds_mcm_cb->adest_details);
        svc_info->svc_list_node.key_info = (uint8_t *)&svc_info->svc_hdl;
 
        ncs_patricia_tree_add(&gl_mds_mcm_cb->svc_list, (NCS_PATRICIA_NODE 
*)&svc_info->svc_list_node);
@@ -944,6 +1116,7 @@ uint32_t mds_subtn_tbl_add(MDS_SVC_HDL s
        subtn_info->next = svc_info->subtn_info;
        svc_info->subtn_info = subtn_info;
 
+       strcpy(subtn_info->sub_adest_details, svc_info->adest_details); 
        /*  STEP 2.b: Start Subscription Timer */
 
        subtn_info->tmr_flag = true;
@@ -1459,6 +1632,9 @@ uint32_t mds_subtn_res_tbl_add(MDS_SVC_H
        subtn_res_info->rem_svc_sub_part_ver = svc_sub_part_ver;
        subtn_res_info->rem_svc_arch_word = archword_type;
 
+       get_subtn_adest_details(m_MDS_GET_PWE_HDL_FROM_SVC_HDL(svc_hdl), 
+                       subscr_svc_id, adest, 
subtn_res_info->sub_adest_details);
+       
        ncs_patricia_tree_add(&gl_mds_mcm_cb->subtn_results, (NCS_PATRICIA_NODE 
*)&subtn_res_info->node);
 
        if (vdest_id != m_VDEST_ID_FOR_ADEST_ENTRY) {   /* Entry to add is 
VDEST entry */
diff --git a/osaf/libs/core/mds/mds_c_sndrcv.c 
b/osaf/libs/core/mds/mds_c_sndrcv.c
--- a/osaf/libs/core/mds/mds_c_sndrcv.c
+++ b/osaf/libs/core/mds/mds_c_sndrcv.c
@@ -328,7 +328,7 @@ static uint32_t mcm_pvt_process_svc_bcas
                                              NCSMDS_SCOPE_TYPE scope, 
MDS_SEND_PRIORITY_TYPE pri,
                                              uint8_t flag /* For normal=0, 
red=1 */ );
 
-static uint32_t mds_mcm_check_intranode(MDS_DEST adest);
+uint32_t mds_mcm_check_intranode(MDS_DEST adest);
 
 #define MDS_GET_NODE_ID(p) m_MDS_GET_NODE_ID_FROM_ADEST(p)
 
@@ -929,6 +929,7 @@ static uint32_t mcm_pvt_normal_snd_proce
        MDS_PWE_HDL pwe_hdl = (MDS_PWE_HDL)env_hdl;
        MDS_SVC_INFO *svc_cb = NULL;
        MDS_SUBSCRIPTION_RESULTS_INFO *tx_send_hdl = NULL;      /* Subscription 
Result */
+       MDS_SUBSCRIPTION_RESULTS_INFO *log_tx_send_hdl = NULL;      /* 
Subscription Result */
 
        uint32_t status = 0;
 
@@ -973,7 +974,7 @@ static uint32_t mcm_pvt_normal_snd_proce
 
                /* Query one type to get the tx_send_hdl(results) */
                if (NCSCC_RC_SUCCESS !=
-                   mds_subtn_res_tbl_query_by_adest(svc_cb->svc_hdl, 
dest_svc_id, dest_vdest_id, dest)) {
+                   mds_get_subtn_res_tbl_by_adest(svc_cb->svc_hdl, 
dest_svc_id, dest_vdest_id, dest, &log_tx_send_hdl)) {
                        tx_send_hdl = NULL;
                } else {
                        /* Route available, send the data now */
@@ -1267,6 +1268,7 @@ static uint32_t mcm_msg_cpy_send(uint8_t
        }
        req.adest = dest;
 
+       strcpy(req.sub_adest_details, lcl_subtn_res->sub_adest_details);
        m_MDS_LOG_INFO("MDS_SND_RCV: Sending the data to MDTM layer\n");
        m_MDS_LOG_DBG("MDS_SND_RCV : Leaving mcm_msg_cpy_send\n");
        return mds_mdtm_send(&req);
@@ -1318,7 +1320,7 @@ static uint32_t mcm_msg_direct_send_buff
 
        req.pri = pri;
        req.msg_fmt_ver = msg_fmt_ver;
-
+       strcpy(req.sub_adest_details, lcl_subtn_res->sub_adest_details);
        m_MDS_LOG_INFO("MDS_SND_RCV: Sending the data to MDTM layer\n");
 
        m_MDS_LOG_DBG("MDS_SND_RCV : Leaving mcm_msg_direct_send_buff\n");
@@ -1492,6 +1494,7 @@ static uint32_t mcm_msg_encode_full_or_f
        msg_send.dest_pwe_id = m_MDS_GET_PWE_ID_FROM_SVC_HDL(svc_cb->svc_hdl);
        msg_send.dest_vdest_id = dest_vdest_id;
        msg_send.src_svc_sub_part_ver = svc_cb->svc_sub_part_ver;
+       strcpy(msg_send.sub_adest_details, lcl_subtn_res->sub_adest_details);
 
        if ((((svc_cb->subtn_info->prev_ver_sub_count > 0)) 
                                && (snd_type == MDS_SENDTYPE_BCAST || snd_type 
== MDS_SENDTYPE_RBCAST))
@@ -1628,6 +1631,7 @@ static uint32_t mds_mcm_process_disc_que
        bool time_wait = false;
 
        MDS_SUBSCRIPTION_RESULTS_INFO *t_send_hdl = NULL;       /* Subscription 
Result */
+       MDS_SUBSCRIPTION_RESULTS_INFO *log_t_send_hdl = NULL;       /* 
Subscription Result */
 
        m_MDS_LOG_DBG("MDS_SND_RCV :Entering 
mds_mcm_process_disc_queue_checks\n");
 
@@ -1694,7 +1698,7 @@ static uint32_t mds_mcm_process_disc_que
 
                        /* Query one type to get the tx_send_hdl(results) */
                        if (NCSCC_RC_SUCCESS !=
-                           mds_subtn_res_tbl_query_by_adest(svc_cb->svc_hdl, 
dest_svc_id, dest_vdest_id, anchor)) {
+                           mds_get_subtn_res_tbl_by_adest(svc_cb->svc_hdl, 
dest_svc_id, dest_vdest_id, anchor, &log_t_send_hdl)) {
                                /* m_MDS_LOG_ERR("MDS_SND_RCV: No Route FOUND 
from SVC id = %d "); */
                                m_MDS_LOG_ERR
                                    ("MDS_SND_RCV:No Route Found from SVC id = 
%d to SVC id = %d on ADEST <0x%08x, %u>",
@@ -2208,6 +2212,7 @@ static uint32_t mcm_pvt_red_snd_process_
        uint32_t status = 0;
 
        MDS_SUBSCRIPTION_RESULTS_INFO *subs_result_hdl = NULL;
+       MDS_SUBSCRIPTION_RESULTS_INFO *log_subs_result_hdl = NULL;
        V_DEST_RL role_ret = 0; /* Not used, only passed to get the 
subscription result ptr */
 
        if (to_msg.msg_type == MSG_NCSCONTEXT) {
@@ -2247,7 +2252,7 @@ static uint32_t mcm_pvt_red_snd_process_
        /* Check dest_svc_id, dest_pwe_id, Destination <ADEST, VDEST>,
           exists in subscription result table */
 
-       if (NCSCC_RC_SUCCESS != 
mds_subtn_res_tbl_query_by_adest(svc_cb->svc_hdl, dest_svc_id, dest_vdest_id, 
dest)) {
+       if (NCSCC_RC_SUCCESS != mds_get_subtn_res_tbl_by_adest(svc_cb->svc_hdl, 
dest_svc_id, dest_vdest_id, dest, &log_subs_result_hdl)) {
                /* Destination Route Not Found, still some validations required 
*/
                /* Check in subscriptions whether this exists */
                if (NCSCC_RC_SUCCESS !=
@@ -2295,6 +2300,7 @@ static uint32_t mds_mcm_process_disc_que
 {
 
        MDS_SUBSCRIPTION_INFO *sub_info = NULL;
+       MDS_SUBSCRIPTION_RESULTS_INFO *log_subtn_result_info = NULL;
        uint32_t disc_rc;
        bool time_wait = false;
 
@@ -2345,8 +2351,8 @@ static uint32_t mds_mcm_process_disc_que
                }
                return NCSCC_RC_FAILURE;
        } else {
-               if (NCSCC_RC_SUCCESS != 
(mds_subtn_res_tbl_query_by_adest(svc_cb->svc_hdl, dest_svc_id,
-                                                                         
dest_vdest_id, anchor))) {
+               if (NCSCC_RC_SUCCESS != 
(mds_get_subtn_res_tbl_by_adest(svc_cb->svc_hdl, dest_svc_id,
+                                                                         
dest_vdest_id, anchor, &log_subtn_result_info))) {
                        m_MDS_LOG_ERR
                            ("MDS_SND_RCV: Destination Route not found even 
after the DISCOVERY Timer timeout\n");
                        return NCSCC_RC_FAILURE;
@@ -2864,6 +2870,7 @@ static uint32_t mcm_pvt_process_sndrack_
        MDS_VDEST_ID dest_vdest_id = 0;
 
        NCSCONTEXT hdl;
+       MDS_SUBSCRIPTION_RESULTS_INFO *log_subtn_result_info = NULL;
 
        MDS_SVC_INFO *svc_cb = NULL;
 
@@ -3910,7 +3917,7 @@ static uint32_t mcm_pvt_process_svc_bcas
  *                NCSCC_RC_FAILURE
  *
  ****************************************************************************/
-static uint32_t mds_mcm_check_intranode(MDS_DEST adest)
+uint32_t mds_mcm_check_intranode(MDS_DEST adest)
 {
        if (MDS_GET_NODE_ID(adest) == MDS_GET_NODE_ID(m_MDS_GET_ADEST))
                return NCSCC_RC_SUCCESS;
@@ -6162,6 +6169,7 @@ uint32_t mds_await_active_tbl_send(MDS_A
                                req.dest_vdest_id, adest, &lcl_subtn_res);
                req.svc_seq_num = lcl_subtn_res->msg_snd_cnt++;
                req.adest = adest;
+               strcpy(req.sub_adest_details, lcl_subtn_res->sub_adest_details);
                mds_mdtm_send(&req);
                mov_ptr = queue;
                queue = queue->next_msg;
diff --git a/osaf/libs/core/mds/mds_dt_common.c 
b/osaf/libs/core/mds/mds_dt_common.c
--- a/osaf/libs/core/mds/mds_dt_common.c
+++ b/osaf/libs/core/mds/mds_dt_common.c
@@ -17,6 +17,7 @@
 
 #include "mds_dt.h"
 #include "mds_log.h"
+#include "mds_core.h"
 #include "ncssysf_def.h"
 #include "ncssysf_tsk.h"
 #include "ncssysf_mem.h"
diff --git a/osaf/libs/core/mds/mds_dt_tcp.c b/osaf/libs/core/mds/mds_dt_tcp.c
--- a/osaf/libs/core/mds/mds_dt_tcp.c
+++ b/osaf/libs/core/mds/mds_dt_tcp.c
@@ -17,6 +17,7 @@
 
 #include "mds_dt.h"
 #include "mds_log.h"
+#include "mds_core.h"
 #include "ncssysf_def.h"
 #include "ncssysf_tsk.h"
 #include "ncssysf_mem.h"
@@ -195,6 +196,8 @@ uint32_t mds_mdtm_init_tcp(NODE_ID nodei
 
        *mds_tcp_ref = mdtm_pid;
 
+       get_adest_details(tcp_cb->adest, tcp_cb->adest_details);
+
        if (mds_socket_domain == AF_UNIX) {
                int servlen = 0;
                server_addr_un.sun_family = AF_UNIX;
diff --git a/osaf/libs/core/mds/mds_dt_tipc.c b/osaf/libs/core/mds/mds_dt_tipc.c
--- a/osaf/libs/core/mds/mds_dt_tipc.c
+++ b/osaf/libs/core/mds/mds_dt_tipc.c
@@ -26,6 +26,7 @@
 */
 #include "mds_dt.h"
 #include "mds_log.h"
+#include "mds_core.h"
 #include "ncssysf_def.h"
 #include "ncssysf_tsk.h"
 #include "ncssysf_mem.h"
@@ -111,6 +112,7 @@ typedef struct mdtm_tipc_cb {
        void *mdtm_hdle_task;
        int hdle_mdtm;
        uint64_t adest;
+       char adest_details[255];
 
        SYSF_MBX tmr_mbx;
        int tmr_fd;
@@ -226,6 +228,7 @@ uint32_t mdtm_tipc_init(NODE_ID nodeid, 
        tipc_cb.adest = ((uint64_t)(nodeid)) << 32;
        tipc_cb.adest |= addr.addr.id.ref;
        tipc_cb.node_id = nodeid;
+       get_adest_details(tipc_cb.adest, tipc_cb.adest_details);
 
        tipc_node_id = mdtm_tipc_own_node(tipc_cb.BSRsock);     /* This gets 
the tipc ownaddress */
 
@@ -822,6 +825,7 @@ static uint32_t mdtm_process_discovery_e
                        MDS_VDEST_ID vdest;
                        NCS_VDEST_TYPE policy = 0;
                        MDS_SVC_HDL svc_hdl;
+                       char adest_details[255];
 
                        MDS_SVC_PVT_SUB_PART_VER svc_sub_part_ver;
                        MDS_SVC_ARCHWORD_TYPE archword_type;
@@ -887,6 +891,8 @@ static uint32_t mdtm_process_discovery_e
                                     svc_id, 
m_MDS_GET_SVC_ID_FROM_SVC_HDL(svc_hdl), node, discovery_event);
                                return NCSCC_RC_FAILURE;
                        }
+                       
get_subtn_adest_details(m_MDS_GET_PWE_HDL_FROM_SVC_HDL(svc_hdl), 
m_MDS_GET_SVC_ID_FROM_SVC_HDL(svc_hdl),
+                                       adest, adest_details);
 
                        if (TIPC_PUBLISHED == discovery_event) {
                                m_MDS_LOG_NOTIFY
diff --git a/osaf/libs/core/mds/mds_main.c b/osaf/libs/core/mds/mds_main.c
--- a/osaf/libs/core/mds/mds_main.c
+++ b/osaf/libs/core/mds/mds_main.c
@@ -284,6 +284,7 @@ uint32_t mds_lib_req(NCS_LIB_REQ_INFO *r
                        return NCSCC_RC_FAILURE;
                }
                gl_mds_mcm_cb->adest = 
m_MDS_GET_ADEST_FROM_NODE_ID_AND_PROCESS_ID(node_id, mds_tipc_ref);
+               get_adest_details(gl_mds_mcm_cb->adest, 
gl_mds_mcm_cb->adest_details);  
 
                /* Initialize logging */
                {

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to