X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fofp-print.c;h=7c1ebd006719c20d242aae8824f86ddfb80addbb;hb=fb0d597fb64308c60001e3afc9b31eb295dedb6b;hp=5d06b96f9df4cafe5751846ac7730a49c288b04b;hpb=abaad8cf1b5089e17a4af0ab1ff644bfcf63cad9;p=openvswitch diff --git a/lib/ofp-print.c b/lib/ofp-print.c index 5d06b96f..7c1ebd00 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); @@ -133,8 +134,8 @@ ofp_packet_in(struct ds *string, const void *oh, size_t len, int verbosity) struct ofp_match match; packet.data = (void *) op->data; packet.size = data_len; - flow_extract(&packet, ntohs(op->in_port), &flow); - flow_to_match(&flow, 0, &match); + flow_extract(&packet, 0, ntohs(op->in_port), &flow); + flow_to_match(&flow, 0, false, &match); ofp_print_match(string, &match, verbosity); ds_put_char(string, '\n'); } @@ -192,6 +193,13 @@ ofp_print_nx_action(struct ds *string, const struct nx_action_header *nah) break; } + case NXAST_SET_TUNNEL: { + const struct nx_action_set_tunnel *nast = + (struct nx_action_set_tunnel *)nah; + ds_put_format(string, "set_tunnel:0x%08"PRIx32, ntohl(nast->tun_id)); + break; + } + default: ds_put_format(string, "***unknown Nicira action:%d***\n", ntohs(nah->subtype)); @@ -671,10 +679,13 @@ ofp_match_to_string(const struct ofp_match *om, int verbosity) skip_type = false; } } + if (w & NXFW_TUN_ID) { + ds_put_cstr(&f, "tun_id_wild,"); + } print_wild(&f, "in_port=", w & OFPFW_IN_PORT, verbosity, "%d", ntohs(om->in_port)); print_wild(&f, "dl_vlan=", w & OFPFW_DL_VLAN, verbosity, - "0x%04x", ntohs(om->dl_vlan)); + "%d", ntohs(om->dl_vlan)); print_wild(&f, "dl_vlan_pcp=", w & OFPFW_DL_VLAN_PCP, verbosity, "%d", om->dl_vlan_pcp); print_wild(&f, "dl_src=", w & OFPFW_DL_SRC, verbosity, @@ -742,7 +753,7 @@ ofp_print_flow_mod(struct ds *string, const void *oh, size_t len, default: ds_put_format(string, " cmd:%d ", ntohs(ofm->command)); } - ds_put_format(string, "cookie:%"PRIx64" idle:%d hard:%d pri:%d " + ds_put_format(string, "cookie:0x%"PRIx64" idle:%d hard:%d pri:%d " "buf:%#x flags:%"PRIx16" ", ntohll(ofm->cookie), ntohs(ofm->idle_timeout), ntohs(ofm->hard_timeout), ofm->match.wildcards ? ntohs(ofm->priority) : (uint16_t)-1, @@ -777,7 +788,7 @@ ofp_print_flow_removed(struct ds *string, const void *oh, break; } ds_put_format(string, - " cookie%"PRIx64" pri%"PRIu16" secs%"PRIu32" nsecs%"PRIu32 + " cookie0x%"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, @@ -933,11 +944,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 @@ -994,10 +1010,10 @@ 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, " cookie=0x%"PRIx64", ", ntohll(fs->cookie)); ds_put_format(string, "duration_sec=%"PRIu32"s, ", ntohl(fs->duration_sec)); - ds_put_format(string, "duration_nsec=%"PRIu32"s, ", + 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", ",