aboutsummaryrefslogtreecommitdiff
path: root/lib/flow.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/flow.c')
-rw-r--r--lib/flow.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/flow.c b/lib/flow.c
index cffb59fb..29714b1c 100644
--- a/lib/flow.c
+++ b/lib/flow.c
@@ -507,6 +507,19 @@ flow_zero_wildcards(struct flow *flow, const struct flow_wildcards *wildcards)
flow->skb_priority = 0;
}
+/* Initializes 'fmd' with the metadata found in 'flow'. */
+void
+flow_get_metadata(const struct flow *flow, struct flow_metadata *fmd)
+{
+ fmd->tun_id = flow->tun_id;
+ fmd->tun_id_mask = htonll(UINT64_MAX);
+
+ memcpy(fmd->regs, flow->regs, sizeof fmd->regs);
+ memset(fmd->reg_masks, 0xff, sizeof fmd->reg_masks);
+
+ fmd->in_port = flow->in_port;
+}
+
char *
flow_to_string(const struct flow *flow)
{