X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fofp-print.c;h=f6425318cea59d28de519ce67d46ba2eef97b3b2;hb=87eeed4c03ebb0847c093eeb8a6b7af5f2fd33af;hp=97e37125b11ca93fb53fabeec2b22aaac0723f42;hpb=fb892732bac6787c6fb943554f8000e26477dd85;p=openvswitch diff --git a/lib/ofp-print.c b/lib/ofp-print.c index 97e37125..f6425318 100644 --- a/lib/ofp-print.c +++ b/lib/ofp-print.c @@ -16,10 +16,10 @@ #include #include "ofp-print.h" -#include "xtoxll.h" #include #include +#include #include #include #include @@ -35,6 +35,7 @@ #include "packets.h" #include "pcap.h" #include "util.h" +#include "xtoxll.h" static void ofp_print_port_name(struct ds *string, uint16_t port); @@ -696,6 +697,8 @@ ofp_match_to_string(const struct ofp_match *om, int verbosity) } else { print_wild(&f, "nw_proto=", w & OFPFW_NW_PROTO, verbosity, "%u", om->nw_proto); + print_wild(&f, "nw_tos=", w & OFPFW_NW_TOS, verbosity, + "%u", om->nw_tos); } } if (om->nw_proto == IP_TYPE_ICMP) { @@ -775,11 +778,13 @@ ofp_print_flow_removed(struct ds *string, const void *oh, break; } ds_put_format(string, - " cookie%"PRIx64" pri%"PRIu16" secs%"PRIu32" idle%"PRIu16 - " pkts%"PRIu64" bytes%"PRIu64"\n", ntohll(ofr->cookie), + " cookie%"PRIx64" pri%"PRIu16" secs%"PRIu32" nsecs%"PRIu32 + " idle%"PRIu16" pkts%"PRIu64" bytes%"PRIu64"\n", + ntohll(ofr->cookie), ofr->match.wildcards ? ntohs(ofr->priority) : (uint16_t)-1, - ntohl(ofr->duration), ntohs(ofr->idle_timeout), - ntohll(ofr->packet_count), ntohll(ofr->byte_count)); + ntohl(ofr->duration_sec), ntohl(ofr->duration_nsec), + ntohs(ofr->idle_timeout), ntohll(ofr->packet_count), + ntohll(ofr->byte_count)); } static void @@ -929,11 +934,16 @@ ofp_desc_stats_reply(struct ds *string, const void *body, { const struct ofp_desc_stats *ods = body; - ds_put_format(string, "Manufacturer: %s\n", ods->mfr_desc); - ds_put_format(string, "Hardware: %s\n", ods->hw_desc); - ds_put_format(string, "Software: %s\n", ods->sw_desc); - ds_put_format(string, "Serial Num: %s\n", ods->serial_num); - ds_put_format(string, "DP Description: %s\n", ods->dp_desc); + ds_put_format(string, "Manufacturer: %.*s\n", + (int) sizeof ods->mfr_desc, ods->mfr_desc); + ds_put_format(string, "Hardware: %.*s\n", + (int) sizeof ods->hw_desc, ods->hw_desc); + ds_put_format(string, "Software: %.*s\n", + (int) sizeof ods->sw_desc, ods->sw_desc); + ds_put_format(string, "Serial Num: %.*s\n", + (int) sizeof ods->serial_num, ods->serial_num); + ds_put_format(string, "DP Description: %.*s\n", + (int) sizeof ods->dp_desc, ods->dp_desc); } static void @@ -990,8 +1000,11 @@ ofp_flow_stats_reply(struct ds *string, const void *body_, size_t len, break; } - ds_put_format(string, " cookie=%"PRIu64"s, ", ntohll(fs->cookie)); - ds_put_format(string, "duration=%"PRIu32"s, ", ntohl(fs->duration)); + ds_put_format(string, " cookie=%"PRIu64", ", ntohll(fs->cookie)); + ds_put_format(string, "duration_sec=%"PRIu32"s, ", + ntohl(fs->duration_sec)); + ds_put_format(string, "duration_nsec=%"PRIu32"ns, ", + ntohl(fs->duration_nsec)); ds_put_format(string, "table_id=%"PRIu8", ", fs->table_id); ds_put_format(string, "priority=%"PRIu16", ", fs->match.wildcards ? ntohs(fs->priority) : (uint16_t)-1); @@ -1056,6 +1069,14 @@ static void print_port_stat(struct ds *string, const char *leader, } } +static void +ofp_port_stats_request(struct ds *string, const void *body_, + size_t len OVS_UNUSED, int verbosity OVS_UNUSED) +{ + const struct ofp_port_stats_request *psr = body_; + ds_put_format(string, "port_no=%"PRIu16, ntohs(psr->port_no)); +} + static void ofp_port_stats_reply(struct ds *string, const void *body, size_t len, int verbosity) @@ -1180,7 +1201,9 @@ print_stats(struct ds *string, int type, const void *body, size_t body_len, { OFPST_PORT, "port", - { 0, 0, NULL, }, + { sizeof(struct ofp_port_stats_request), + sizeof(struct ofp_port_stats_request), + ofp_port_stats_request }, { 0, SIZE_MAX, ofp_port_stats_reply }, }, {