X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fdpif-linux.c;h=8d5c48963673147e68c429e40a96a38409377646;hb=c62b0064a0cdbd5f3ecfc2cda90999a9d7ec551d;hp=98acebed50b3e325932d505422b816e46635faf0;hpb=c97fb13280c565f55ed0de7cf0bf06ffe8320b70;p=openvswitch diff --git a/lib/dpif-linux.c b/lib/dpif-linux.c index 98acebed..8d5c4896 100644 --- a/lib/dpif-linux.c +++ b/lib/dpif-linux.c @@ -506,7 +506,7 @@ dpif_linux_flow_get(const struct dpif *dpif_, int flags, } static int -dpif_linux_flow_put(struct dpif *dpif_, int flags, +dpif_linux_flow_put(struct dpif *dpif_, enum dpif_flow_put_flags flags, const struct nlattr *key, size_t key_len, const struct nlattr *actions, size_t actions_len, struct dpif_flow_stats *stats) @@ -520,7 +520,16 @@ dpif_linux_flow_put(struct dpif *dpif_, int flags, put.flow.actions = (struct nlattr *) actions; put.flow.actions_len = actions_len; put.flow.flags = 0; - put.flags = flags; + put.flags = 0; + if (flags & DPIF_FP_CREATE) { + put.flags |= ODPPF_CREATE; + } + if (flags & DPIF_FP_MODIFY) { + put.flags |= ODPPF_MODIFY; + } + if (flags & DPIF_FP_ZERO_STATS) { + put.flags |= ODPPF_ZERO_STATS; + } error = do_ioctl(dpif_, ODP_FLOW_PUT, &put); if (!error && stats) { odp_flow_stats_to_dpif_flow_stats(&put.flow.stats, stats);