summaryrefslogtreecommitdiff
path: root/lib/tnl-ports.c
diff options
context:
space:
mode:
authorJesse Gross <jesse@nicira.com>2015-06-16 11:15:28 -0700
committerJesse Gross <jesse@nicira.com>2015-06-18 16:42:48 -0700
commit5262eea1b88b99b71decfe944aea85ce01166a09 (patch)
tree6ee0ccc5399f942b996310e7dacd5a841d9989be /lib/tnl-ports.c
parentc4c7e593f5800e189f323de1bd92f9e29a097bee (diff)
downloadopenvswitch-5262eea1b88b99b71decfe944aea85ce01166a09.tar.gz
odp-util: Convert flow serialization parameters to a struct.
Serializing between userspace flows and netlink attributes currently requires several additional parameters besides the flows themselves. This will continue to grow in the future as well. This converts the function arguments to a parameters struct, which makes the code easier to read and allowing irrelevant arguments to be omitted. Signed-off-by: Jesse Gross <jesse@nicira.com> Signed-off-by: Andy Zhou <azhou@nicira.com>
Diffstat (limited to 'lib/tnl-ports.c')
-rw-r--r--lib/tnl-ports.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/tnl-ports.c b/lib/tnl-ports.c
index 2602db543..a0a73c85d 100644
--- a/lib/tnl-ports.c
+++ b/lib/tnl-ports.c
@@ -161,22 +161,28 @@ tnl_port_show(struct unixctl_conn *conn, int argc OVS_UNUSED,
size_t key_len, mask_len;
struct flow_wildcards wc;
struct ofpbuf buf;
+ struct odp_flow_key_parms odp_parms = {
+ .flow = &flow,
+ .mask = &wc.masks,
+ };
ds_put_format(&ds, "%s (%"PRIu32") : ", p->dev_name, p->portno);
minimask_expand(&p->cr.match.mask, &wc);
miniflow_expand(&p->cr.match.flow, &flow);
/* Key. */
+ odp_parms.odp_in_port = flow.in_port.odp_port;
+ odp_parms.recirc = true;
ofpbuf_use_stack(&buf, &keybuf, sizeof keybuf);
- odp_flow_key_from_flow(&buf, &flow, &wc.masks,
- flow.in_port.odp_port, true);
+ odp_flow_key_from_flow(&odp_parms, &buf);
key = buf.data;
key_len = buf.size;
+
/* mask*/
+ odp_parms.odp_in_port = wc.masks.in_port.odp_port;
+ odp_parms.recirc = false;
ofpbuf_use_stack(&buf, &maskbuf, sizeof maskbuf);
- odp_flow_key_from_mask(&buf, &wc.masks, &flow,
- odp_to_u32(wc.masks.in_port.odp_port),
- SIZE_MAX, false);
+ odp_flow_key_from_mask(&odp_parms, &buf);
mask = buf.data;
mask_len = buf.size;