+ struct remote_mp *rmp, *rmp_next;
+
+ cfm->fault = cfm->unexpected_recv;
+ cfm->unexpected_recv = false;
+
+ cfm->rmps_array_len = 0;
+ free(cfm->rmps_array);
+ cfm->rmps_array = xmalloc(hmap_count(&cfm->remote_mps) *
+ sizeof *cfm->rmps_array);
+
+ HMAP_FOR_EACH_SAFE (rmp, rmp_next, node, &cfm->remote_mps) {
+
+ if (!rmp->recv) {
+ VLOG_DBG("%s: no CCM from RMP %"PRIu64" in the last %lldms",
+ cfm->name, rmp->mpid, interval);
+ hmap_remove(&cfm->remote_mps, &rmp->node);
+ free(rmp);
+ } else {
+ rmp->recv = false;
+
+ if (rmp->mpid == cfm->mpid) {
+ VLOG_WARN_RL(&rl,"%s: received CCM with local MPID"
+ " %"PRIu64, cfm->name, rmp->mpid);
+ cfm->fault = true;
+ }
+
+ if (rmp->rdi) {
+ VLOG_DBG("%s: RDI bit flagged from RMP %"PRIu64, cfm->name,
+ rmp->mpid);
+ cfm->fault = true;
+ }