usage();
case 'V':
- OVS_PRINT_VERSION(OFP_VERSION, OFP_VERSION);
+ ovs_print_version(OFP_VERSION, OFP_VERSION);
exit(EXIT_SUCCESS);
case OPT_STRICT:
do_dump_flows__(int argc, char *argv[], bool aggregate)
{
enum nx_flow_format min_flow_format, flow_format;
- struct flow_stats_request fsr;
+ struct ofputil_flow_stats_request fsr;
struct ofpbuf *request;
struct vconn *vconn;
min_flow_format = NXFF_OPENFLOW10;
while (!ds_get_preprocessed_line(&s, file)) {
struct fte_version *version;
+ struct ofputil_flow_mod fm;
enum nx_flow_format min_ff;
- struct ofpbuf actions;
- struct flow_mod fm;
- ofpbuf_init(&actions, 64);
parse_ofp_str(&fm, OFPFC_ADD, ds_cstr(&s), true);
version = xmalloc(sizeof *version);
version->idle_timeout = fm.idle_timeout;
version->hard_timeout = fm.hard_timeout;
version->flags = fm.flags & (OFPFF_SEND_FLOW_REM | OFPFF_EMERG);
- version->n_actions = actions.size / sizeof *version->actions;
- version->actions = ofpbuf_steal_data(&actions);
+ version->actions = fm.actions;
+ version->n_actions = fm.n_actions;
min_ff = ofputil_min_flow_format(&fm.cr);
min_flow_format = MAX(min_flow_format, min_ff);
read_flows_from_switch(struct vconn *vconn, enum nx_flow_format flow_format,
struct classifier *cls, int index)
{
- struct flow_stats_request fsr;
+ struct ofputil_flow_stats_request fsr;
struct ofpbuf *request;
ovs_be32 send_xid;
bool done;
enum nx_flow_format flow_format, struct list *packets)
{
const struct fte_version *version = fte->versions[index];
- struct flow_mod fm;
+ struct ofputil_flow_mod fm;
struct ofpbuf *ofm;
fm.cr = fte->rule;
puts(out);
free(out);
} else {
- printf("nx_pull_match() returned error %x\n", error);
+ printf("nx_pull_match() returned error %x (%s)\n", error,
+ ofputil_error_to_string(error));
}
ofpbuf_uninit(&nx_match);