I don't remember for sure anymore, but looking at patch 3/3 I suspect that it's necessary once "ovs-ofctl monitor" starts responding to echo requests.
On Tue, Apr 30, 2013 at 12:26:40PM -0700, Ethan Jackson wrote: > Acked-by: Ethan Jackson <et...@nicira.com> > > What prompted this? > > Ethan > > On Thu, Jan 31, 2013 at 4:17 PM, Ben Pfaff <b...@nicira.com> wrote: > > Otherwise, if a monitor connection happens to be talking to a (misguided?) > > peer that sends it messages, such as replies to what the peer perceives as > > echo requests meant for it, then the peer will eventually hang trying to > > send data because the monitor connection never sinks it. > > > > Signed-off-by: Ben Pfaff <b...@nicira.com> > > --- > > lib/rconn.c | 16 +++++++++++++++- > > 1 files changed, 15 insertions(+), 1 deletions(-) > > > > diff --git a/lib/rconn.c b/lib/rconn.c > > index d7bb0be..4922a5c 100644 > > --- a/lib/rconn.c > > +++ b/lib/rconn.c > > @@ -513,8 +513,21 @@ rconn_run(struct rconn *rc) > > if (rc->vconn) { > > vconn_run(rc->vconn); > > } > > - for (i = 0; i < rc->n_monitors; i++) { > > + for (i = 0; i < rc->n_monitors; ) { > > + struct ofpbuf *msg; > > + int retval; > > + > > vconn_run(rc->monitors[i]); > > + > > + /* Drain any stray message that came in on the monitor connection. > > */ > > + retval = vconn_recv(rc->monitors[i], &msg); > > + if (!retval) { > > + ofpbuf_delete(msg); > > + } else if (retval != EAGAIN) { > > + close_monitor(rc, i, retval); > > + continue; > > + } > > + i++; > > } > > > > do { > > @@ -545,6 +558,7 @@ rconn_run_wait(struct rconn *rc) > > } > > for (i = 0; i < rc->n_monitors; i++) { > > vconn_run_wait(rc->monitors[i]); > > + vconn_recv_wait(rc->monitors[i]); > > } > > > > timeo = timeout(rc); > > -- > > 1.7.2.5 > > > > _______________________________________________ > > dev mailing list > > dev@openvswitch.org > > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev