projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vconn: Fix endian issue in unknown action type error message
[openvswitch]
/
lib
/
dpif-netdev.c
diff --git
a/lib/dpif-netdev.c
b/lib/dpif-netdev.c
index 4c25f1393884004b732b107cba4bca8d04c95ed9..35724d9bf837be03b3f8b9eab9d33111c273b0af 100644
(file)
--- a/
lib/dpif-netdev.c
+++ b/
lib/dpif-netdev.c
@@
-665,7
+665,7
@@
dp_netdev_lookup_flow(const struct dp_netdev *dp, const flow_t *key)
}
static void
}
static void
-answer_flow_query(
const struct dp_netdev_flow *flow
,
+answer_flow_query(
struct dp_netdev_flow *flow, uint32_t query_flags
,
struct odp_flow *odp_flow)
{
if (flow) {
struct odp_flow *odp_flow)
{
if (flow) {
@@
-683,6
+683,11
@@
answer_flow_query(const struct dp_netdev_flow *flow,
n * sizeof *odp_flow->actions);
odp_flow->n_actions = flow->n_actions;
}
n * sizeof *odp_flow->actions);
odp_flow->n_actions = flow->n_actions;
}
+
+ if (query_flags & ODPFF_ZERO_TCP_FLAGS) {
+ flow->tcp_ctl = 0;
+ }
+
} else {
odp_flow->stats.error = ENOENT;
}
} else {
odp_flow->stats.error = ENOENT;
}
@@
-696,7
+701,8
@@
dpif_netdev_flow_get(const struct dpif *dpif, struct odp_flow flows[], int n)
for (i = 0; i < n; i++) {
struct odp_flow *odp_flow = &flows[i];
for (i = 0; i < n; i++) {
struct odp_flow *odp_flow = &flows[i];
- answer_flow_query(dp_netdev_lookup_flow(dp, &odp_flow->key), odp_flow);
+ answer_flow_query(dp_netdev_lookup_flow(dp, &odp_flow->key),
+ odp_flow->flags, odp_flow);
}
return 0;
}
}
return 0;
}
@@
-852,7
+858,7
@@
dpif_netdev_flow_del(struct dpif *dpif, struct odp_flow *odp_flow)
flow = dp_netdev_lookup_flow(dp, &odp_flow->key);
if (flow) {
flow = dp_netdev_lookup_flow(dp, &odp_flow->key);
if (flow) {
- answer_flow_query(flow, odp_flow);
+ answer_flow_query(flow,
0,
odp_flow);
dp_netdev_free_flow(dp, flow);
return 0;
} else {
dp_netdev_free_flow(dp, flow);
return 0;
} else {
@@
-872,7
+878,7
@@
dpif_netdev_flow_list(const struct dpif *dpif, struct odp_flow flows[], int n)
if (i >= n) {
break;
}
if (i >= n) {
break;
}
- answer_flow_query(flow, &flows[i++]);
+ answer_flow_query(flow,
0,
&flows[i++]);
}
return hmap_count(&dp->flow_table);
}
}
return hmap_count(&dp->flow_table);
}