[devel] [PATCH 1 of 1] amfnd: queue PG track action msgs [#2115]
osaf/services/saf/amf/amfnd/di.cc | 8 ++-- 1 files changed, 2 insertions(+), 6 deletions(-) After SC absence, active amfd will reject messages from 'veteran' amfnds until its local amfnd has started. During this period, if a PG track action msg is sent and rejected by amfd, it will cause the sending amfnd to lose sync with amfd. So we should also queue this message to be re-sent. diff --git a/osaf/services/saf/amf/amfnd/di.cc b/osaf/services/saf/amf/amfnd/di.cc --- a/osaf/services/saf/amf/amfnd/di.cc +++ b/osaf/services/saf/amf/amfnd/di.cc @@ -1033,12 +1033,8 @@ uint32_t avnd_di_msg_send(AVND_CB *cb, A if (!msg) goto done; - /* Verify Ack nack and PG track action msgs are not buffered */ - if (m_AVSV_N2D_MSG_IS_PG_TRACK_ACT(msg->info.avd)) { - /*send the response to AvD */ - rc = avnd_mds_send(cb, msg, &cb->avd_dest, 0); - goto done; - } else if (m_AVSV_N2D_MSG_IS_VER_ACK_NACK(msg->info.avd)) { + /* Verify Ack nack msgs are not buffered */ + if (m_AVSV_N2D_MSG_IS_VER_ACK_NACK(msg->info.avd)) { /*send the response to active AvD (In case MDS has not updated its tables by this time) */ TRACE_1("%s, Active AVD Adest: %" PRIu64, __FUNCTION__, cb->active_avd_adest); -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel
Re: [devel] [PATCH 1 of 1] amfnd: queue PG track action msgs [#2115]
Hi Gary, one query inline with [Praveen] Thanks, Praveen On 13-Oct-16 4:20 AM, Gary Lee wrote: > osaf/services/saf/amf/amfnd/di.cc | 8 ++-- > 1 files changed, 2 insertions(+), 6 deletions(-) > > > After SC absence, active amfd will reject messages from 'veteran' amfnds until > its local amfnd has started. During this period, if a PG track action msg > is sent and rejected by amfd, it will cause the sending amfnd to lose sync [Praveen] I think here "lose sync" means it will cause message id mismatch later. > with amfd. So we should also queue this message to be re-sent. > > diff --git a/osaf/services/saf/amf/amfnd/di.cc > b/osaf/services/saf/amf/amfnd/di.cc > --- a/osaf/services/saf/amf/amfnd/di.cc > +++ b/osaf/services/saf/amf/amfnd/di.cc > @@ -1033,12 +1033,8 @@ uint32_t avnd_di_msg_send(AVND_CB *cb, A > if (!msg) > goto done; > > - /* Verify Ack nack and PG track action msgs are not buffered */ > - if (m_AVSV_N2D_MSG_IS_PG_TRACK_ACT(msg->info.avd)) { > - /*send the response to AvD */ > - rc = avnd_mds_send(cb, msg, &cb->avd_dest, 0); > - goto done; > - } else if (m_AVSV_N2D_MSG_IS_VER_ACK_NACK(msg->info.avd)) { > + /* Verify Ack nack msgs are not buffered */ > + if (m_AVSV_N2D_MSG_IS_VER_ACK_NACK(msg->info.avd)) { > /*send the response to active AvD (In case MDS has not updated > its > tables by this time) */ > TRACE_1("%s, Active AVD Adest: %" PRIu64, __FUNCTION__, > cb->active_avd_adest); > -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel
Re: [devel] [PATCH 1 of 1] amfnd: queue PG track action msgs [#2115]
Hi Praveen Yes, I will change it to make it clearer. Thanks > On 14 Oct. 2016, at 4:27 pm, praveen malviya > wrote: > > Hi Gary, > > one query inline with [Praveen] > > Thanks, > Praveen > > On 13-Oct-16 4:20 AM, Gary Lee wrote: >> osaf/services/saf/amf/amfnd/di.cc | 8 ++-- >> 1 files changed, 2 insertions(+), 6 deletions(-) >> >> >> After SC absence, active amfd will reject messages from 'veteran' amfnds >> until >> its local amfnd has started. During this period, if a PG track action msg >> is sent and rejected by amfd, it will cause the sending amfnd to lose sync > [Praveen] I think here "lose sync" means it will cause message id mismatch > later. > >> with amfd. So we should also queue this message to be re-sent. >> >> diff --git a/osaf/services/saf/amf/amfnd/di.cc >> b/osaf/services/saf/amf/amfnd/di.cc >> --- a/osaf/services/saf/amf/amfnd/di.cc >> +++ b/osaf/services/saf/amf/amfnd/di.cc >> @@ -1033,12 +1033,8 @@ uint32_t avnd_di_msg_send(AVND_CB *cb, A >> if (!msg) >> goto done; >> >> -/* Verify Ack nack and PG track action msgs are not buffered */ >> -if (m_AVSV_N2D_MSG_IS_PG_TRACK_ACT(msg->info.avd)) { >> -/*send the response to AvD */ >> -rc = avnd_mds_send(cb, msg, &cb->avd_dest, 0); >> -goto done; >> -} else if (m_AVSV_N2D_MSG_IS_VER_ACK_NACK(msg->info.avd)) { >> +/* Verify Ack nack msgs are not buffered */ >> +if (m_AVSV_N2D_MSG_IS_VER_ACK_NACK(msg->info.avd)) { >> /*send the response to active AvD (In case MDS has not updated >> its >> tables by this time) */ >> TRACE_1("%s, Active AVD Adest: %" PRIu64, __FUNCTION__, >> cb->active_avd_adest); >> -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel
Re: [devel] [PATCH 1 of 1] amfnd: queue PG track action msgs [#2115]
But I think same problem will still come as AMFND is trying to send this newly added record only in the same function avnd_di_msg_send(): /* add the record to the AvD msg list */ if ((0 != (rec = avnd_diq_rec_add(cb, msg { /* send the message */ avnd_diq_rec_send(cb, rec); } else rc = NCSCC_RC_FAILURE; Thanks, Praveen On 14-Oct-16 10:59 AM, Gary Lee wrote: > Hi Praveen > > Yes, I will change it to make it clearer. > > Thanks > >> On 14 Oct. 2016, at 4:27 pm, praveen malviya >> wrote: >> >> Hi Gary, >> >> one query inline with [Praveen] >> >> Thanks, >> Praveen >> >> On 13-Oct-16 4:20 AM, Gary Lee wrote: >>> osaf/services/saf/amf/amfnd/di.cc | 8 ++-- >>> 1 files changed, 2 insertions(+), 6 deletions(-) >>> >>> >>> After SC absence, active amfd will reject messages from 'veteran' amfnds >>> until >>> its local amfnd has started. During this period, if a PG track action msg >>> is sent and rejected by amfd, it will cause the sending amfnd to lose sync >> [Praveen] I think here "lose sync" means it will cause message id mismatch >> later. >> >>> with amfd. So we should also queue this message to be re-sent. >>> >>> diff --git a/osaf/services/saf/amf/amfnd/di.cc >>> b/osaf/services/saf/amf/amfnd/di.cc >>> --- a/osaf/services/saf/amf/amfnd/di.cc >>> +++ b/osaf/services/saf/amf/amfnd/di.cc >>> @@ -1033,12 +1033,8 @@ uint32_t avnd_di_msg_send(AVND_CB *cb, A >>> if (!msg) >>> goto done; >>> >>> - /* Verify Ack nack and PG track action msgs are not buffered */ >>> - if (m_AVSV_N2D_MSG_IS_PG_TRACK_ACT(msg->info.avd)) { >>> - /*send the response to AvD */ >>> - rc = avnd_mds_send(cb, msg, &cb->avd_dest, 0); >>> - goto done; >>> - } else if (m_AVSV_N2D_MSG_IS_VER_ACK_NACK(msg->info.avd)) { >>> + /* Verify Ack nack msgs are not buffered */ >>> + if (m_AVSV_N2D_MSG_IS_VER_ACK_NACK(msg->info.avd)) { >>> /*send the response to active AvD (In case MDS has not updated >>> its >>>tables by this time) */ >>> TRACE_1("%s, Active AVD Adest: %" PRIu64, __FUNCTION__, >>> cb->active_avd_adest); >>> > -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel
Re: [devel] [PATCH 1 of 1] amfnd: queue PG track action msgs [#2115]
Hi Praveen Yeah, but at least it’s added to “diq”. So when amfnd gets set_led again, the message will be retransmitted and accepted by amfd. Thanks Gary > On 14 Oct. 2016, at 4:40 pm, praveen malviya > wrote: > > > But I think same problem will still come as AMFND is trying to send this > newly added record only in the same function avnd_di_msg_send(): > /* add the record to the AvD msg list */ >if ((0 != (rec = avnd_diq_rec_add(cb, msg { >/* send the message */ >avnd_diq_rec_send(cb, rec); >} else >rc = NCSCC_RC_FAILURE; > > Thanks, > Praveen > > > On 14-Oct-16 10:59 AM, Gary Lee wrote: >> Hi Praveen >> >> Yes, I will change it to make it clearer. >> >> Thanks >> >>> On 14 Oct. 2016, at 4:27 pm, praveen malviya >>> wrote: >>> >>> Hi Gary, >>> >>> one query inline with [Praveen] >>> >>> Thanks, >>> Praveen >>> >>> On 13-Oct-16 4:20 AM, Gary Lee wrote: osaf/services/saf/amf/amfnd/di.cc | 8 ++-- 1 files changed, 2 insertions(+), 6 deletions(-) After SC absence, active amfd will reject messages from 'veteran' amfnds until its local amfnd has started. During this period, if a PG track action msg is sent and rejected by amfd, it will cause the sending amfnd to lose sync >>> [Praveen] I think here "lose sync" means it will cause message id mismatch >>> later. >>> with amfd. So we should also queue this message to be re-sent. diff --git a/osaf/services/saf/amf/amfnd/di.cc b/osaf/services/saf/amf/amfnd/di.cc --- a/osaf/services/saf/amf/amfnd/di.cc +++ b/osaf/services/saf/amf/amfnd/di.cc @@ -1033,12 +1033,8 @@ uint32_t avnd_di_msg_send(AVND_CB *cb, A if (!msg) goto done; - /* Verify Ack nack and PG track action msgs are not buffered */ - if (m_AVSV_N2D_MSG_IS_PG_TRACK_ACT(msg->info.avd)) { - /*send the response to AvD */ - rc = avnd_mds_send(cb, msg, &cb->avd_dest, 0); - goto done; - } else if (m_AVSV_N2D_MSG_IS_VER_ACK_NACK(msg->info.avd)) { + /* Verify Ack nack msgs are not buffered */ + if (m_AVSV_N2D_MSG_IS_VER_ACK_NACK(msg->info.avd)) { /*send the response to active AvD (In case MDS has not updated its tables by this time) */ TRACE_1("%s, Active AVD Adest: %" PRIu64, __FUNCTION__, cb->active_avd_adest); >> -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel
Re: [devel] [PATCH 1 of 1] amfnd: queue PG track action msgs [#2115]
Ack, code review only. One minor comment: As per README PG tracking APIs are unavailable during headless. Here even though, controllers have come up system is still headless. Since application is distributed across nodes, application state from other nodes may also generate these PG events. After headless AMFD will get PG events from each node. An application may get unrecorded callbacks. I think in future, AMF can publish latest status of Protection group to each of the participating comps after returning from headless state and after becoming stable. Thanks, Praveen On 14-Oct-16 11:14 AM, Gary Lee wrote: > Hi Praveen > > Yeah, but at least it’s added to “diq”. So when amfnd gets set_led again, the > message will be retransmitted and accepted by amfd. > > Thanks > Gary > >> On 14 Oct. 2016, at 4:40 pm, praveen malviya >> wrote: >> >> >> But I think same problem will still come as AMFND is trying to send this >> newly added record only in the same function avnd_di_msg_send(): >> /* add the record to the AvD msg list */ >>if ((0 != (rec = avnd_diq_rec_add(cb, msg { >>/* send the message */ >>avnd_diq_rec_send(cb, rec); >>} else >>rc = NCSCC_RC_FAILURE; >> >> Thanks, >> Praveen >> >> >> On 14-Oct-16 10:59 AM, Gary Lee wrote: >>> Hi Praveen >>> >>> Yes, I will change it to make it clearer. >>> >>> Thanks >>> On 14 Oct. 2016, at 4:27 pm, praveen malviya wrote: Hi Gary, one query inline with [Praveen] Thanks, Praveen On 13-Oct-16 4:20 AM, Gary Lee wrote: > osaf/services/saf/amf/amfnd/di.cc | 8 ++-- > 1 files changed, 2 insertions(+), 6 deletions(-) > > > After SC absence, active amfd will reject messages from 'veteran' amfnds > until > its local amfnd has started. During this period, if a PG track action msg > is sent and rejected by amfd, it will cause the sending amfnd to lose sync [Praveen] I think here "lose sync" means it will cause message id mismatch later. > with amfd. So we should also queue this message to be re-sent. > > diff --git a/osaf/services/saf/amf/amfnd/di.cc > b/osaf/services/saf/amf/amfnd/di.cc > --- a/osaf/services/saf/amf/amfnd/di.cc > +++ b/osaf/services/saf/amf/amfnd/di.cc > @@ -1033,12 +1033,8 @@ uint32_t avnd_di_msg_send(AVND_CB *cb, A > if (!msg) > goto done; > > - /* Verify Ack nack and PG track action msgs are not buffered */ > - if (m_AVSV_N2D_MSG_IS_PG_TRACK_ACT(msg->info.avd)) { > - /*send the response to AvD */ > - rc = avnd_mds_send(cb, msg, &cb->avd_dest, 0); > - goto done; > - } else if (m_AVSV_N2D_MSG_IS_VER_ACK_NACK(msg->info.avd)) { > + /* Verify Ack nack msgs are not buffered */ > + if (m_AVSV_N2D_MSG_IS_VER_ACK_NACK(msg->info.avd)) { > /*send the response to active AvD (In case MDS has not updated > its > tables by this time) */ > TRACE_1("%s, Active AVD Adest: %" PRIu64, __FUNCTION__, > cb->active_avd_adest); > >>> > -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel