if (verbosity > 0) {
struct flow flow;
struct ofpbuf packet;
- struct ofp_match match;
+
packet.data = (void *) op->data;
packet.size = data_len;
flow_extract(&packet, 0, ntohs(op->in_port), &flow);
- flow_to_match(&flow, 0, false, &match);
- ofp_print_match(string, &match, verbosity);
+ flow_format(string, &flow);
ds_put_char(string, '\n');
}
if (verbosity > 1) {
ds_put_cstr(string, name);
}
+static void
+print_note(struct ds *string, const struct nx_action_note *nan)
+{
+ size_t len;
+ size_t i;
+
+ ds_put_cstr(string, "note:");
+ len = ntohs(nan->len) - offsetof(struct nx_action_note, note);
+ for (i = 0; i < len; i++) {
+ if (i) {
+ ds_put_char(string, '.');
+ }
+ ds_put_format(string, "%02"PRIx8, nan->note[i]);
+ }
+}
+
static void
ofp_print_nx_action(struct ds *string, const struct nx_action_header *nah)
{
ds_put_cstr(string, "pop_queue");
break;
+ case NXAST_NOTE:
+ print_note(string, (const struct nx_action_note *) nah);
+ break;
+
default:
ds_put_format(string, "***unknown Nicira action:%d***",
ntohs(nah->subtype));
}
}
- ds_put_format(&string, "%s (xid=0x%"PRIx32"):", pkt->name, oh->xid);
+ ds_put_format(&string, "%s (xid=0x%"PRIx32"):", pkt->name, ntohl(oh->xid));
if (ntohs(oh->length) > len)
ds_put_format(&string, " (***truncated to %zu bytes from %"PRIu16"***)",