projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
in-band: Drop in-band flows when turning off in-band control.
[openvswitch]
/
ofproto
/
ofproto.c
diff --git
a/ofproto/ofproto.c
b/ofproto/ofproto.c
index 995e6b0fe9e256936b4f7ffa05beef5aeb308172..ba9ef1903db12d59260fbd2a170010e6bfaca885 100644
(file)
--- a/
ofproto/ofproto.c
+++ b/
ofproto/ofproto.c
@@
-718,8
+718,9
@@
ofproto_destroy(struct ofproto *p)
return;
}
return;
}
- /* Destroy fail-open
early, because it touches
the classifier. */
+ /* Destroy fail-open
and in-band early, since they touch
the classifier. */
ofproto_set_failure(p, false);
ofproto_set_failure(p, false);
+ ofproto_set_in_band(p, false);
ofproto_flush_flows(p);
classifier_destroy(&p->cls);
ofproto_flush_flows(p);
classifier_destroy(&p->cls);
@@
-737,7
+738,6
@@
ofproto_destroy(struct ofproto *p)
shash_destroy(&p->port_by_name);
switch_status_destroy(p->switch_status);
shash_destroy(&p->port_by_name);
switch_status_destroy(p->switch_status);
- in_band_destroy(p->in_band);
discovery_destroy(p->discovery);
pinsched_destroy(p->miss_sched);
pinsched_destroy(p->action_sched);
discovery_destroy(p->discovery);
pinsched_destroy(p->miss_sched);
pinsched_destroy(p->action_sched);
@@
-1669,6
+1669,7
@@
do_put_flow(struct ofproto *ofproto, struct rule *rule, int flags,
put->flow.key = rule->cr.flow;
put->flow.actions = rule->odp_actions;
put->flow.n_actions = rule->n_odp_actions;
put->flow.key = rule->cr.flow;
put->flow.actions = rule->odp_actions;
put->flow.n_actions = rule->n_odp_actions;
+ put->flow.flags = 0;
put->flags = flags;
return dpif_flow_put(ofproto->dpif, put);
}
put->flags = flags;
return dpif_flow_put(ofproto->dpif, put);
}
@@
-1764,6
+1765,7
@@
rule_uninstall(struct ofproto *p, struct rule *rule)
odp_flow.key = rule->cr.flow;
odp_flow.actions = NULL;
odp_flow.n_actions = 0;
odp_flow.key = rule->cr.flow;
odp_flow.actions = NULL;
odp_flow.n_actions = 0;
+ odp_flow.flags = 0;
if (!dpif_flow_del(p->dpif, &odp_flow)) {
update_stats(p, rule, &odp_flow.stats);
}
if (!dpif_flow_del(p->dpif, &odp_flow)) {
update_stats(p, rule, &odp_flow.stats);
}