learn_format((const struct nx_action_learn *) a, s);
break;
+ case OFPUTIL_NXAST_EXIT:
+ ds_put_cstr(s, "exit");
+ break;
+
default:
break;
}
flags = ntohs(osc->flags);
- ds_put_cstr(string, " frags=");
- switch (flags & OFPC_FRAG_MASK) {
- case OFPC_FRAG_NORMAL:
- ds_put_cstr(string, "normal");
- flags &= ~OFPC_FRAG_MASK;
- break;
- case OFPC_FRAG_DROP:
- ds_put_cstr(string, "drop");
- flags &= ~OFPC_FRAG_MASK;
- break;
- case OFPC_FRAG_REASM:
- ds_put_cstr(string, "reassemble");
- flags &= ~OFPC_FRAG_MASK;
- break;
- }
+ ds_put_format(string, " frags=%s", ofputil_frag_handling_to_string(flags));
+ flags &= ~OFPC_FRAG_MASK;
+
if (flags) {
ds_put_format(string, " ***unknown flags 0x%04"PRIx16"***", flags);
}
"%u", om->nw_tos);
if (om->nw_proto == IPPROTO_ICMP) {
print_wild(&f, "icmp_type=", w & OFPFW_ICMP_TYPE, verbosity,
- "%d", ntohs(om->icmp_type));
+ "%d", ntohs(om->tp_src));
print_wild(&f, "icmp_code=", w & OFPFW_ICMP_CODE, verbosity,
- "%d", ntohs(om->icmp_code));
+ "%d", ntohs(om->tp_dst));
} else {
print_wild(&f, "tp_src=", w & OFPFW_TP_SRC, verbosity,
"%d", ntohs(om->tp_src));
ds_put_printable(string, payload, payload_len);
break;
- case OFPET_BAD_REQUEST:
+ default:
s = ofp_to_string(payload, payload_len, 1);
ds_put_cstr(string, s);
free(s);
break;
-
- default:
- ds_put_hex_dump(string, payload, payload_len, 0, true);
- break;
}
}