Small nits below. Also, I did not verify this against the OpenFlow spec. Otherwise:
Acked-by: Jarno Rajahalme <jrajaha...@nicira.com> On Aug 7, 2014, at 4:13 PM, Ben Pfaff <b...@nicira.com> wrote: > Signed-off-by: Ben Pfaff <b...@nicira.com> > — (snip) > struct ofputil_meter_band { > diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c > index 6bcec1e..cbac36a 100644 > --- a/ofproto/ofproto.c > +++ b/ofproto/ofproto.c > @@ -3189,6 +3189,38 @@ handle_table_stats_request(struct ofconn *ofconn, > return 0; > } > > +static enum ofperr > +handle_table_features_request(struct ofconn *ofconn, > + const struct ofp_header *request) > +{ > + struct ofproto *ofproto = ofconn_get_ofproto(ofconn); > + struct ofputil_table_features *features; > + struct list replies; > + struct ofpbuf msg; > + size_t i; > + > + ofpbuf_use_const(&msg, request, ntohs(request->length)); > + ofpraw_pull_assert(&msg); > + if (ofpbuf_size(&msg) || ofpmp_more(request)) { > + return OFPERR_OFPTFFC_EPERM; > + } Indentation wrong in the closing brace (horror!) I guess you used the EPERM error code as nothing better was defined? > + > + query_tables(ofproto, &features, NULL); > + > + ofpmp_init(&replies, request); > + for (i = 0; i < ofproto->n_tables; i++) { > + if (!(ofproto->tables[i].flags & OFTABLE_HIDDEN)) { > + ofputil_append_table_features_reply(&features[i], &replies); > + Extra blank line… > + } > + } > + ofconn_send_replies(ofconn, &replies); > + > + free(features); > + > + return 0; > +} > + > (snip) _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev