X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=lib%2Fcfm.c;h=134d8b78bdb767be17f86d8d07ca017aebf84366;hb=0d0c0bb535d0b305aabac5cc6f24e880808ff410;hp=65701781a3c8e734e4273ca31b22c4a667d80009;hpb=c3f72482ba4d375d2dd32de6f58ed4cdcef37ddd;p=openvswitch diff --git a/lib/cfm.c b/lib/cfm.c index 65701781..134d8b78 100644 --- a/lib/cfm.c +++ b/lib/cfm.c @@ -87,6 +87,7 @@ struct cfm { uint64_t mpid; bool extended; /* Extended mode. */ + bool booted; /* A full fault interval has occured. */ enum cfm_fault_reason fault; /* Connectivity fault status. */ enum cfm_fault_reason recv_fault; /* Bit mask of faults occuring on receive. */ @@ -407,6 +408,7 @@ cfm_run(struct cfm *cfm) ds_destroy(&ds); } + cfm->booted = true; timer_set_duration(&cfm->fault_timer, interval); VLOG_DBG("%s: new fault interval", cfm->name); } @@ -469,7 +471,7 @@ cfm_compose_ccm(struct cfm *cfm, struct ofpbuf *packet, ccm->interval_ms_x = htons(0); } - if (hmap_is_empty(&cfm->remote_mps)) { + if (cfm->booted && hmap_is_empty(&cfm->remote_mps)) { ccm->flags |= CCM_RDI_MASK; }