X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fofp-print.c;h=7b5e456fd8f58c1a7a689713672237d0fa140ed6;hb=bf16ba4a9b1b4a38c867349e70e39d551b406b32;hp=25258665f77da09e3c93037d673c2c404358f2b0;hpb=d84d4b88d26e3f37ce24f1d3eebe0d70ef264f73;p=openvswitch diff --git a/lib/ofp-print.c b/lib/ofp-print.c index 25258665..7b5e456f 100644 --- a/lib/ofp-print.c +++ b/lib/ofp-print.c @@ -210,8 +210,7 @@ nx_action_len(enum nx_action_subtype subtype) case NXAST_SNAT__OBSOLETE: return -1; case NXAST_RESUBMIT: return sizeof(struct nx_action_resubmit); case NXAST_SET_TUNNEL: return sizeof(struct nx_action_set_tunnel); - case NXAST_DROP_SPOOFED_ARP: - return sizeof(struct nx_action_drop_spoofed_arp); + case NXAST_DROP_SPOOFED_ARP__OBSOLETE: return -1; case NXAST_SET_QUEUE: return sizeof(struct nx_action_set_queue); case NXAST_POP_QUEUE: return sizeof(struct nx_action_pop_queue); case NXAST_REG_MOVE: return sizeof(struct nx_action_reg_move); @@ -259,10 +258,6 @@ ofp_print_nx_action(struct ds *string, const struct nx_action_header *nah) ds_put_format(string, "set_tunnel:%#"PRIx32, ntohl(nast->tun_id)); return; - case NXAST_DROP_SPOOFED_ARP: - ds_put_cstr(string, "drop_spoofed_arp"); - return; - case NXAST_SET_QUEUE: nasq = (struct nx_action_set_queue *)nah; ds_put_format(string, "set_queue:%u", ntohl(nasq->queue_id)); @@ -307,6 +302,7 @@ ofp_print_nx_action(struct ds *string, const struct nx_action_header *nah) return; case NXAST_SNAT__OBSOLETE: + case NXAST_DROP_SPOOFED_ARP__OBSOLETE: default: break; } @@ -834,7 +830,7 @@ ofp_print_flow_mod(struct ds *s, const struct ofp_header *oh, bool need_priority; int error; - error = ofputil_decode_flow_mod(&fm, oh); + error = ofputil_decode_flow_mod(&fm, oh, true); if (error) { ofp_print_error(s, error); return; @@ -860,6 +856,9 @@ ofp_print_flow_mod(struct ds *s, const struct ofp_header *oh, default: ds_put_format(s, "cmd:%d", fm.command); } + if (fm.table_id != 0) { + ds_put_format(s, " table:%d", fm.table_id); + } ds_put_char(s, ' '); if (verbosity >= 3 && code == OFPUTIL_OFPT_FLOW_MOD) { @@ -1044,10 +1043,8 @@ ofp_print_port_status(struct ds *string, const struct ofp_port_status *ops) } static void -ofp_print_ofpst_desc_reply(struct ds *string, const struct ofp_header *oh) +ofp_print_ofpst_desc_reply(struct ds *string, const struct ofp_desc_stats *ods) { - const struct ofp_desc_stats *ods = ofputil_stats_body(oh); - ds_put_char(string, '\n'); ds_put_format(string, "Manufacturer: %.*s\n", (int) sizeof ods->mfr_desc, ods->mfr_desc); @@ -1062,19 +1059,20 @@ ofp_print_ofpst_desc_reply(struct ds *string, const struct ofp_header *oh) } static void -ofp_print_flow_stats_request(struct ds *string, const struct ofp_header *oh) +ofp_print_flow_stats_request(struct ds *string, + const struct ofp_stats_msg *osm) { struct flow_stats_request fsr; int error; - error = ofputil_decode_flow_stats_request(&fsr, oh); + error = ofputil_decode_flow_stats_request(&fsr, &osm->header); if (error) { ofp_print_error(string, error); return; } if (fsr.table_id != 0xff) { - ds_put_format(string, " table_id=%"PRIu8, fsr.table_id); + ds_put_format(string, " table=%"PRIu8, fsr.table_id); } if (fsr.out_port != OFPP_NONE) { @@ -1113,7 +1111,7 @@ ofp_print_flow_stats_reply(struct ds *string, const struct ofp_header *oh) ds_put_format(string, " cookie=0x%"PRIx64", duration=", ntohll(fs.cookie)); ofp_print_duration(string, fs.duration_sec, fs.duration_nsec); - ds_put_format(string, ", table_id=%"PRIu8", ", fs.table_id); + ds_put_format(string, ", table=%"PRIu8", ", fs.table_id); ds_put_format(string, "n_packets=%"PRIu64", ", fs.packet_count); ds_put_format(string, "n_bytes=%"PRIu64", ", fs.byte_count); if (fs.idle_timeout != OFP_FLOW_PERMANENT) { @@ -1132,8 +1130,8 @@ ofp_print_flow_stats_reply(struct ds *string, const struct ofp_header *oh) } static void -ofp_print_ofp_aggregate_stats_reply ( - struct ds *string, const struct ofp_aggregate_stats_reply *asr) +ofp_print_ofpst_aggregate_reply(struct ds *string, + const struct ofp_aggregate_stats_reply *asr) { ds_put_format(string, " packet_count=%"PRIu64, ntohll(get_32aligned_be64(&asr->packet_count))); @@ -1142,17 +1140,13 @@ ofp_print_ofp_aggregate_stats_reply ( ds_put_format(string, " flow_count=%"PRIu32, ntohl(asr->flow_count)); } -static void -ofp_print_ofpst_aggregate_reply(struct ds *string, const struct ofp_header *oh) -{ - ofp_print_ofp_aggregate_stats_reply(string, ofputil_stats_body(oh)); -} - static void ofp_print_nxst_aggregate_reply(struct ds *string, const struct nx_aggregate_stats_reply *nasr) { - ofp_print_ofp_aggregate_stats_reply(string, &nasr->asr); + ds_put_format(string, " packet_count=%"PRIu64, ntohll(nasr->packet_count)); + ds_put_format(string, " byte_count=%"PRIu64, ntohll(nasr->byte_count)); + ds_put_format(string, " flow_count=%"PRIu32, ntohl(nasr->flow_count)); } static void print_port_stat(struct ds *string, const char *leader, @@ -1174,9 +1168,9 @@ static void print_port_stat(struct ds *string, const char *leader, } static void -ofp_print_ofpst_port_request(struct ds *string, const struct ofp_header *oh) +ofp_print_ofpst_port_request(struct ds *string, + const struct ofp_port_stats_request *psr) { - const struct ofp_port_stats_request *psr = ofputil_stats_body(oh); ds_put_format(string, " port_no=%"PRIu16, ntohs(psr->port_no)); } @@ -1250,10 +1244,9 @@ ofp_print_queue_name(struct ds *string, uint32_t queue_id) } static void -ofp_print_ofpst_queue_request(struct ds *string, const struct ofp_header *oh) +ofp_print_ofpst_queue_request(struct ds *string, + const struct ofp_queue_stats_request *qsr) { - const struct ofp_queue_stats_request *qsr = ofputil_stats_body(oh); - ds_put_cstr(string, "port="); ofp_print_port_name(string, ntohs(qsr->port_no)); @@ -1288,8 +1281,7 @@ ofp_print_ofpst_queue_reply(struct ds *string, const struct ofp_header *oh, static void ofp_print_stats_request(struct ds *string, const struct ofp_header *oh) { - const struct ofp_stats_request *srq - = (const struct ofp_stats_request *) oh; + const struct ofp_stats_msg *srq = (const struct ofp_stats_msg *) oh; if (srq->flags) { ds_put_format(string, " ***unknown flags 0x%04"PRIx16"***", @@ -1300,7 +1292,7 @@ ofp_print_stats_request(struct ds *string, const struct ofp_header *oh) static void ofp_print_stats_reply(struct ds *string, const struct ofp_header *oh) { - const struct ofp_stats_reply *srp = (const struct ofp_stats_reply *) oh; + const struct ofp_stats_msg *srp = (const struct ofp_stats_msg *) oh; if (srp->flags) { uint16_t flags = ntohs(srp->flags); @@ -1346,6 +1338,13 @@ ofp_print_nxt_role_message(struct ds *string, } } +static void +ofp_print_nxt_flow_mod_table_id(struct ds *string, + const struct nxt_flow_mod_table_id *nfmti) +{ + ds_put_format(string, " %s", nfmti->set ? "enable" : "disable"); +} + static void ofp_print_nxt_set_flow_format(struct ds *string, const struct nxt_set_flow_format *nsff) @@ -1449,7 +1448,7 @@ ofp_to_string__(const struct ofp_header *oh, case OFPUTIL_OFPST_AGGREGATE_REQUEST: case OFPUTIL_NXST_AGGREGATE_REQUEST: ofp_print_stats_request(string, oh); - ofp_print_flow_stats_request(string, oh); + ofp_print_flow_stats_request(string, msg); break; case OFPUTIL_OFPST_TABLE_REQUEST: @@ -1458,17 +1457,17 @@ ofp_to_string__(const struct ofp_header *oh, case OFPUTIL_OFPST_PORT_REQUEST: ofp_print_stats_request(string, oh); - ofp_print_ofpst_port_request(string, oh); + ofp_print_ofpst_port_request(string, msg); break; case OFPUTIL_OFPST_QUEUE_REQUEST: ofp_print_stats_request(string, oh); - ofp_print_ofpst_queue_request(string, oh); + ofp_print_ofpst_queue_request(string, msg); break; case OFPUTIL_OFPST_DESC_REPLY: ofp_print_stats_reply(string, oh); - ofp_print_ofpst_desc_reply(string, oh); + ofp_print_ofpst_desc_reply(string, msg); break; case OFPUTIL_OFPST_FLOW_REPLY: @@ -1494,7 +1493,7 @@ ofp_to_string__(const struct ofp_header *oh, case OFPUTIL_OFPST_AGGREGATE_REPLY: ofp_print_stats_reply(string, oh); - ofp_print_ofpst_aggregate_reply(string, oh); + ofp_print_ofpst_aggregate_reply(string, msg); break; case OFPUTIL_NXT_ROLE_REQUEST: @@ -1502,6 +1501,10 @@ ofp_to_string__(const struct ofp_header *oh, ofp_print_nxt_role_message(string, msg); break; + case OFPUTIL_NXT_FLOW_MOD_TABLE_ID: + ofp_print_nxt_flow_mod_table_id(string, msg); + break; + case OFPUTIL_NXT_SET_FLOW_FORMAT: ofp_print_nxt_set_flow_format(string, msg); break;