Comments: 1. First of all, the mds sub part version should not be stored/used. You should depend on the message format version as SI rank is being embedded in the new message(which is being sent from AVD). If you have a requirement for usage of message version, you can get it at runtime when you receive a SUSI message etc. Decode the received message and use the message format version. 2. As per patch, Storage of mds version will happen only once for a life time. You need to process the NEW-ACTIVE event of MDS as well which will make sure to store the mds version even after the failover/switchover.
Regards Surya On Friday 28 March 2014 06:44 PM, Hans Feldt wrote: > osaf/services/saf/avsv/avd/avd_mds.c | 2 ++ > osaf/services/saf/avsv/avnd/avnd_di.c | 1 + > osaf/services/saf/avsv/avnd/avnd_mds.c | 3 +++ > osaf/services/saf/avsv/avnd/include/avnd_cb.h | 1 + > osaf/services/saf/avsv/avnd/include/avnd_evt.h | 1 + > 5 files changed, 8 insertions(+), 0 deletions(-) > > > diff --git a/osaf/services/saf/avsv/avd/avd_mds.c > b/osaf/services/saf/avsv/avd/avd_mds.c > --- a/osaf/services/saf/avsv/avd/avd_mds.c > +++ b/osaf/services/saf/avsv/avd/avd_mds.c > @@ -414,6 +414,8 @@ static uint32_t avd_mds_svc_evt(MDS_CALL > break; > > case NCSMDS_SVC_ID_AVND: > + // TODO remove, just for test > + LOG_NO("%s: AVND UP version: %u", __FUNCTION__, > evt_info->i_rem_svc_pvt_ver); > if (evt_info->i_node_id == cb->node_id_avd) { > AVD_EVT *evt = calloc(1, sizeof(AVD_EVT)); > osafassert(evt); > diff --git a/osaf/services/saf/avsv/avnd/avnd_di.c > b/osaf/services/saf/avsv/avnd/avnd_di.c > --- a/osaf/services/saf/avsv/avnd/avnd_di.c > +++ b/osaf/services/saf/avsv/avnd/avnd_di.c > @@ -421,6 +421,7 @@ uint32_t avnd_evt_mds_avd_up_evh(AVND_CB > > /* store the AVD MDS address */ > cb->avd_dest = evt->info.mds.mds_dest; > + cb->avd_mds_ver = evt->info.mds.rem_svc_pvt_ver; > > avnd_send_node_up_msg(); > } > diff --git a/osaf/services/saf/avsv/avnd/avnd_mds.c > b/osaf/services/saf/avsv/avnd/avnd_mds.c > --- a/osaf/services/saf/avsv/avnd/avnd_mds.c > +++ b/osaf/services/saf/avsv/avnd/avnd_mds.c > @@ -594,8 +594,11 @@ uint32_t avnd_mds_svc_evt(AVND_CB *cb, M > case NCSMDS_UP: > switch (evt_info->i_svc_id) { > case NCSMDS_SVC_ID_AVD: > + // TODO remove, just for test > + LOG_NO("%s: AVD UP version: %u", __FUNCTION__, > evt_info->i_rem_svc_pvt_ver); > /* create the mds event */ > evt = avnd_evt_create(cb, AVND_EVT_MDS_AVD_UP, 0, > &evt_info->i_dest, 0, 0, 0); > + evt->info.mds.rem_svc_pvt_ver = > evt_info->i_rem_svc_pvt_ver; > break; > > case NCSMDS_SVC_ID_AVA: > diff --git a/osaf/services/saf/avsv/avnd/include/avnd_cb.h > b/osaf/services/saf/avsv/avnd/include/avnd_cb.h > --- a/osaf/services/saf/avsv/avnd/include/avnd_cb.h > +++ b/osaf/services/saf/avsv/avnd/include/avnd_cb.h > @@ -50,6 +50,7 @@ typedef struct avnd_cb_tag { > MDS_DEST avnd_dest; /* AvND mds addr */ > MDS_DEST avd_dest; /* AvD mds addr */ > bool is_avd_down; /* Temp: Indicates if AvD went down */ > + MDS_SVC_PVT_SUB_PART_VER avd_mds_ver; /* Director MDS version */ > > /* cb related params */ > NCS_LOCK lock; /* cb lock */ > diff --git a/osaf/services/saf/avsv/avnd/include/avnd_evt.h > b/osaf/services/saf/avsv/avnd/include/avnd_evt.h > --- a/osaf/services/saf/avsv/avnd/include/avnd_evt.h > +++ b/osaf/services/saf/avsv/avnd/include/avnd_evt.h > @@ -128,6 +128,7 @@ typedef struct avnd_tmr_evt { > typedef struct avnd_mds_evt { > MDS_DEST mds_dest; /* mds address */ > NODE_ID node_id; > + MDS_SVC_PVT_SUB_PART_VER rem_svc_pvt_ver; > } AVND_MDS_EVT; > > /* HA STATE change event definition */ > > ------------------------------------------------------------------------------ > _______________________________________________ > Opensaf-devel mailing list > Opensaf-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/opensaf-devel ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel