Thanks, I pushed this.
On Wed, Jul 27, 2011 at 01:52:55PM -0700, Ethan Jackson wrote: > Looks Good. > > Ethan > > On Thu, Jul 21, 2011 at 14:45, Ben Pfaff <[email protected]> wrote: > > These ovs-ofctl commands have been sending malformed stats requests since > > commit 63f2140a553 "openflow: Make stats replies more like other OpenFlow > > messages." ?This commit fixes the problem and adds basic unit tests that > > should prevent similar regressions. > > > > Reported-by: Hao Zheng <[email protected]> > > --- > > ?tests/ofproto.at ? ? ?| ? 24 ++++++++++++++++++++++++ > > ?utilities/ovs-ofctl.c | ? ?9 +++++---- > > ?2 files changed, 29 insertions(+), 4 deletions(-) > > > > diff --git a/tests/ofproto.at b/tests/ofproto.at > > index e6def3e..227efe0 100644 > > --- a/tests/ofproto.at > > +++ b/tests/ofproto.at > > @@ -19,6 +19,30 @@ OFPT_GET_CONFIG_REPLY: frags=normal miss_send_len=0 > > ?OFPROTO_STOP > > ?AT_CLEANUP > > > > +dnl This is really bare-bones. > > +dnl It at least checks request and reply serialization and deserialization. > > +AT_SETUP([ofproto - port stats]) > > +OFPROTO_START > > +AT_CHECK([ovs-ofctl -vANY:ANY:WARN dump-ports br0], [0], [stdout]) > > +AT_CHECK([STRIP_XIDS stdout], [0], [dnl > > +OFPST_PORT reply: 1 ports > > + ?port 65534: rx pkts=0, bytes=0, drop=0, errs=0, frame=0, over=0, crc=0 > > + ? ? ? ? ? tx pkts=0, bytes=0, drop=0, errs=0, coll=0 > > +]) > > +OFPROTO_STOP > > +AT_CLEANUP > > + > > +dnl This is really bare-bones. > > +dnl It at least checks request and reply serialization and deserialization. > > +AT_SETUP([ofproto - queue stats]) > > +OFPROTO_START > > +AT_CHECK([ovs-ofctl -vANY:ANY:WARN queue-stats br0], [0], [stdout]) > > +AT_CHECK([STRIP_XIDS stdout], [0], [dnl > > +OFPST_QUEUE reply: 0 queues > > +]) > > +OFPROTO_STOP > > +AT_CLEANUP > > + > > ?AT_SETUP([ofproto - mod-port]) > > ?OFPROTO_START > > ?for command_config_state in \ > > diff --git a/utilities/ovs-ofctl.c b/utilities/ovs-ofctl.c > > index 7cdf42d..d3fccce 100644 > > --- a/utilities/ovs-ofctl.c > > +++ b/utilities/ovs-ofctl.c > > @@ -261,13 +261,14 @@ open_vconn(const char *name, struct vconn **vconnp) > > ?} > > > > ?static void * > > -alloc_stats_request(size_t body_len, uint16_t type, struct ofpbuf > > **bufferp) > > +alloc_stats_request(size_t rq_len, uint16_t type, struct ofpbuf **bufferp) > > ?{ > > ? ? struct ofp_stats_msg *rq; > > - ? ?rq = make_openflow(sizeof *rq + body_len, OFPT_STATS_REQUEST, bufferp); > > + > > + ? ?rq = make_openflow(rq_len, OFPT_STATS_REQUEST, bufferp); > > ? ? rq->type = htons(type); > > ? ? rq->flags = htons(0); > > - ? ?return rq + 1; > > + ? ?return rq; > > ?} > > > > ?static void > > @@ -333,7 +334,7 @@ static void > > ?dump_trivial_stats_transaction(const char *vconn_name, uint8_t stats_type) > > ?{ > > ? ? struct ofpbuf *request; > > - ? ?alloc_stats_request(0, stats_type, &request); > > + ? ?alloc_stats_request(sizeof(struct ofp_stats_msg), stats_type, > > &request); > > ? ? dump_stats_transaction(vconn_name, request); > > ?} > > > > -- > > 1.7.4.4 > > > > _______________________________________________ > > dev mailing list > > [email protected] > > http://openvswitch.org/mailman/listinfo/dev > > _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
