Thanks Paul. As part of this patch, I moved your name to the list of people who've contributed code in the AUTHORS file.
Acked-by: Ethan Jackson <[email protected]> On Fri, Aug 2, 2013 at 4:12 PM, Paul Ingram <[email protected]> wrote: > The remote opstate for a CFM interface is presumed to be up unless a CCM is > received which signals opstate down. This means than an interface configured > for CFM demand mode may incorrectly appear to be opstate up if it has not > received a CCM within the last fault interval. > > We should remember the last remote opstate for a CFM interface and only > change it when a CCM arrives signaling a change. > > Bug #18806 > Signed-off-by: Paul Ingram <[email protected]> > --- > lib/cfm.c | 16 +++++++++++++--- > 1 file changed, 13 insertions(+), 3 deletions(-) > > diff --git a/lib/cfm.c b/lib/cfm.c > index 235d121..a7cc890 100644 > --- a/lib/cfm.c > +++ b/lib/cfm.c > @@ -350,6 +350,8 @@ cfm_run(struct cfm *cfm) > struct remote_mp *rmp, *rmp_next; > bool old_cfm_fault = cfm->fault; > bool demand_override; > + bool rmp_set_opup = false; > + bool rmp_set_opdown = false; > > cfm->fault = cfm->recv_fault; > cfm->recv_fault = 0; > @@ -359,7 +361,6 @@ cfm_run(struct cfm *cfm) > cfm->rmps_array = xmalloc(hmap_count(&cfm->remote_mps) * > sizeof *cfm->rmps_array); > > - cfm->remote_opup = true; > if (cfm->health_interval == CFM_HEALTH_INTERVAL) { > /* Calculate the cfm health of the interface. If the number of > * remote_mpids of a cfm interface is > 1, the cfm health is > @@ -411,14 +412,23 @@ cfm_run(struct cfm *cfm) > } else { > rmp->recv = false; > > - if (!rmp->opup) { > - cfm->remote_opup = rmp->opup; > + if (rmp->opup) { > + rmp_set_opup = true; > + } else { > + rmp_set_opdown = true; > } > > cfm->rmps_array[cfm->rmps_array_len++] = rmp->mpid; > } > } > > + if (rmp_set_opdown) { > + cfm->remote_opup = false; > + } > + else if (rmp_set_opup) { > + cfm->remote_opup = true; > + } > + > if (hmap_is_empty(&cfm->remote_mps)) { > cfm->fault |= CFM_FAULT_RECV; > } > -- > 1.7.9.5 > > _______________________________________________ > dev mailing list > [email protected] > http://openvswitch.org/mailman/listinfo/dev X-CudaMail-Whitelist-To: [email protected] _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
