[ovs-dev] [ofp-print 10/18] ofp-print: Print NXST_FLOW_REQUEST and NXST_AGGREGATE_REQUEST.
Ben Pfaff
blp at nicira.com
Thu Dec 9 00:27:02 UTC 2010
This takes advantage of ofputil_decode_flow_stats_request() to get rid of
some code.
---
lib/ofp-print.c | 51 +++++++++++++++++++++------------------------------
1 files changed, 21 insertions(+), 30 deletions(-)
diff --git a/lib/ofp-print.c b/lib/ofp-print.c
index 5dcf7bf..fa3f73e 100644
--- a/lib/ofp-print.c
+++ b/lib/ofp-print.c
@@ -1061,18 +1061,28 @@ ofp_print_ofpst_desc_reply(struct ds *string, const struct ofp_header *oh)
}
static void
-ofp_print_ofpst_flow_request(struct ds *string, const struct ofp_header *oh,
- int verbosity)
+ofp_print_flow_stats_request(struct ds *string, const struct ofp_header *oh)
{
- const struct ofp_flow_stats_request *fsr = ofputil_stats_body(oh);
+ struct flow_stats_request fsr;
+ int error;
- if (fsr->table_id == 0xff) {
- ds_put_format(string, " table_id=any, ");
- } else {
- ds_put_format(string, " table_id=%"PRIu8", ", fsr->table_id);
+ error = ofputil_decode_flow_stats_request(&fsr, oh, NXFF_OPENFLOW10);
+ if (error) {
+ ofp_print_error(string, error);
+ return;
+ }
+
+ if (fsr.table_id != 0xff) {
+ ds_put_format(string, " table_id=%"PRIu8, fsr.table_id);
}
- ofp_print_match(string, &fsr->match, verbosity);
+ if (fsr.out_port != OFPP_NONE) {
+ ds_put_cstr(string, " out_port=");
+ ofp_print_port_name(string, fsr.out_port);
+ }
+
+ ds_put_char(string, ' ');
+ cls_rule_format(&fsr.match, string);
}
static void
@@ -1218,21 +1228,6 @@ ofp_print_nxst_flow_reply(struct ds *string, const struct ofp_header *oh)
}
static void
-ofp_print_ofpst_aggregate_request(struct ds *string,
- const struct ofp_header *oh, int verbosity)
-{
- const struct ofp_aggregate_stats_request *asr = ofputil_stats_body(oh);
-
- if (asr->table_id == 0xff) {
- ds_put_format(string, " table_id=any, ");
- } else {
- ds_put_format(string, " table_id=%"PRIu8", ", asr->table_id);
- }
-
- ofp_print_match(string, &asr->match, verbosity);
-}
-
-static void
ofp_print_ofpst_aggregate_reply(struct ds *string, const struct ofp_header *oh)
{
const struct ofp_aggregate_stats_reply *asr = ofputil_stats_body(oh);
@@ -1546,13 +1541,11 @@ ofp_to_string__(const struct ofp_header *oh,
break;
case OFPUTIL_OFPST_FLOW_REQUEST:
- ofp_print_stats_request(string, oh);
- ofp_print_ofpst_flow_request(string, oh, verbosity);
- break;
-
+ case OFPUTIL_NXST_FLOW_REQUEST:
case OFPUTIL_OFPST_AGGREGATE_REQUEST:
+ case OFPUTIL_NXST_AGGREGATE_REQUEST:
ofp_print_stats_request(string, oh);
- ofp_print_ofpst_aggregate_request(string, oh, verbosity);
+ ofp_print_flow_stats_request(string, oh);
break;
case OFPUTIL_OFPST_TABLE_REQUEST:
@@ -1622,8 +1615,6 @@ ofp_to_string__(const struct ofp_header *oh,
break;
case OFPUTIL_NXT_FLOW_REMOVED:
- case OFPUTIL_NXST_FLOW_REQUEST:
- case OFPUTIL_NXST_AGGREGATE_REQUEST:
/* XXX */
break;
--
1.7.1
More information about the dev
mailing list