X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fofp-print.c;h=9123f2f9379dc05484f91a1bc6693ffa3ee1b489;hb=95216219538e532732df6d2f51c0d7b69addae8c;hp=3f5b6be380e34617623aeb826a9f343a005665f6;hpb=42edbe39dd2dcb94ef2f43dacb3e43a01bcf1f86;p=openvswitch diff --git a/lib/ofp-print.c b/lib/ofp-print.c index 3f5b6be3..9123f2f9 100644 --- a/lib/ofp-print.c +++ b/lib/ofp-print.c @@ -457,6 +457,7 @@ ofputil_action_bitmap_to_name(uint32_t bit) case OFPUTIL_A_SET_NW_TOS: return "SET_NW_TOS"; case OFPUTIL_A_SET_TP_SRC: return "SET_TP_SRC"; case OFPUTIL_A_SET_TP_DST: return "SET_TP_DST"; + case OFPUTIL_A_SET_FIELD: return "SET_FIELD"; case OFPUTIL_A_ENQUEUE: return "ENQUEUE"; case OFPUTIL_A_COPY_TTL_OUT: return "COPY_TTL_OUT"; case OFPUTIL_A_COPY_TTL_IN: return "COPY_TTL_IN"; @@ -733,9 +734,9 @@ ofp_print_flow_mod(struct ds *s, const struct ofp_header *oh, int verbosity) /* nx_match_to_string() doesn't print priority. */ need_priority = true; } else { - cls_rule_format(&fm.cr, s); + match_format(&fm.match, s, fm.priority); - /* cls_rule_format() does print priority. */ + /* match_format() does print priority. */ need_priority = false; } @@ -755,8 +756,8 @@ ofp_print_flow_mod(struct ds *s, const struct ofp_header *oh, int verbosity) if (fm.hard_timeout != OFP_FLOW_PERMANENT) { ds_put_format(s, "hard:%"PRIu16" ", fm.hard_timeout); } - if (fm.cr.priority != OFP_DEFAULT_PRIORITY && need_priority) { - ds_put_format(s, "pri:%"PRIu16" ", fm.cr.priority); + if (fm.priority != OFP_DEFAULT_PRIORITY && need_priority) { + ds_put_format(s, "pri:%"PRIu16" ", fm.priority); } if (fm.buffer_id != UINT32_MAX) { ds_put_format(s, "buf:0x%"PRIx32" ", fm.buffer_id); @@ -837,11 +838,15 @@ ofp_print_flow_removed(struct ds *string, const struct ofp_header *oh) } ds_put_char(string, ' '); - cls_rule_format(&fr.rule, string); + match_format(&fr.match, string, fr.priority); ds_put_format(string, " reason=%s", ofp_flow_removed_reason_to_string(fr.reason)); + if (fr.table_id != 255) { + ds_put_format(string, " table_id=%"PRIu8, fr.table_id); + } + if (fr.cookie != htonll(0)) { ds_put_format(string, " cookie:0x%"PRIx64, ntohll(fr.cookie)); } @@ -983,12 +988,8 @@ ofp_print_flow_stats_request(struct ds *string, const struct ofp_header *oh) ofputil_format_port(fsr.out_port, string); } - /* A flow stats request doesn't include a priority, but cls_rule_format() - * will print one unless it is OFP_DEFAULT_PRIORITY. */ - fsr.match.priority = OFP_DEFAULT_PRIORITY; - ds_put_char(string, ' '); - cls_rule_format(&fsr.match, string); + match_format(&fsr.match, string, OFP_DEFAULT_PRIORITY); } void @@ -1014,7 +1015,7 @@ ofp_print_flow_stats(struct ds *string, struct ofputil_flow_stats *fs) ds_put_format(string, "hard_age=%d, ", fs->hard_age); } - cls_rule_format(&fs->rule, string); + match_format(&fs->match, string, fs->priority); if (string->string[string->length - 1] != ' ') { ds_put_char(string, ' '); } @@ -1044,6 +1045,7 @@ ofp_print_flow_stats_reply(struct ds *string, const struct ofp_header *oh) ds_put_char(string, '\n'); ofp_print_flow_stats(string, &fs); } + ofpbuf_uninit(&ofpacts); } static void @@ -1599,7 +1601,7 @@ ofp_print_nxst_flow_monitor_request(struct ds *string, } ds_put_char(string, ' '); - cls_rule_format(&request.match, string); + match_format(&request.match, string, OFP_DEFAULT_PRIORITY); ds_chomp(string, ' '); } } @@ -1616,7 +1618,7 @@ ofp_print_nxst_flow_monitor_reply(struct ds *string, ofpbuf_use_stub(&ofpacts, ofpacts_stub, sizeof ofpacts_stub); for (;;) { struct ofputil_flow_update update; - struct cls_rule match; + struct match match; int retval; update.match = &match; @@ -1661,7 +1663,7 @@ ofp_print_nxst_flow_monitor_reply(struct ds *string, ds_put_format(string, " cookie=%#"PRIx64, ntohll(update.cookie)); ds_put_char(string, ' '); - cls_rule_format(update.match, string); + match_format(update.match, string, OFP_DEFAULT_PRIORITY); if (update.ofpacts_len) { if (string->string[string->length - 1] != ' ') {