const struct nx_action_reg_load *load;
const struct nx_action_multipath *nam;
const struct nx_action_autopath *naa;
+ const struct nx_action_output_reg *naor;
uint16_t port;
switch (code) {
ofp_print_port_name(s, ntohs(nar->in_port));
break;
+ case OFPUTIL_NXAST_RESUBMIT_TABLE:
+ nar = (struct nx_action_resubmit *)a;
+ ds_put_format(s, "resubmit(");
+ if (nar->in_port != htons(OFPP_IN_PORT)) {
+ ofp_print_port_name(s, ntohs(nar->in_port));
+ }
+ ds_put_char(s, ',');
+ if (nar->table != 255) {
+ ds_put_format(s, "%"PRIu8, nar->table);
+ }
+ ds_put_char(s, ')');
+ break;
+
case OFPUTIL_NXAST_SET_TUNNEL:
nast = (struct nx_action_set_tunnel *)a;
ds_put_format(s, "set_tunnel:%#"PRIx32, ntohl(nast->tun_id));
bundle_format((const struct nx_action_bundle *) a, s);
break;
+ case OFPUTIL_NXAST_OUTPUT_REG:
+ naor = (const struct nx_action_output_reg *) a;
+ ds_put_cstr(s, "output:");
+ nxm_format_field_bits(s, ntohl(naor->src),
+ nxm_decode_ofs(naor->ofs_nbits),
+ nxm_decode_n_bits(naor->ofs_nbits));
+ break;
+
default:
break;
}
ofp_print_flow_mod(struct ds *s, const struct ofp_header *oh,
enum ofputil_msg_code code, int verbosity)
{
- struct flow_mod fm;
+ struct ofputil_flow_mod fm;
bool need_priority;
int error;
ofp_print_flow_stats_request(struct ds *string,
const struct ofp_stats_msg *osm)
{
- struct flow_stats_request fsr;
+ struct ofputil_flow_stats_request fsr;
int error;
error = ofputil_decode_flow_stats_request(&fsr, &osm->header);