summaryrefslogtreecommitdiff
path: root/utilities
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2011-08-09 12:55:13 -0700
committerBen Pfaff <blp@nicira.com>2011-08-09 12:55:13 -0700
commite89993f33c2ccd0373a47941df82bdd797c525ea (patch)
tree82e1b15a744fe88a1da798599f2b8d814bd9b45a /utilities
parent8402c74b186e28c53ad51fc8813aebe64a12cd7c (diff)
downloadopenvswitch-e89993f33c2ccd0373a47941df82bdd797c525ea.tar.gz
ovs-ofctl: Fix reading flows from file for "replace-flows", "diff-flows".
Commit c821124b25e "ovs-ofctl: Accept only valid flow_mod and flow_stats_request fields" caused actions read by read_flows_from_file() to be ignored and treated as "drop". This fixes the problem.
Diffstat (limited to 'utilities')
-rw-r--r--utilities/ovs-ofctl.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/utilities/ovs-ofctl.c b/utilities/ovs-ofctl.c
index 39ebe4004..d7c88b682 100644
--- a/utilities/ovs-ofctl.c
+++ b/utilities/ovs-ofctl.c
@@ -1042,10 +1042,8 @@ read_flows_from_file(const char *filename, struct classifier *cls, int index)
while (!ds_get_preprocessed_line(&s, file)) {
struct fte_version *version;
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);
@@ -1053,8 +1051,8 @@ read_flows_from_file(const char *filename, struct classifier *cls, int index)
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);