summaryrefslogtreecommitdiff
path: root/ofproto/ofproto-dpif-xlate.h
diff options
context:
space:
mode:
authorJarno Rajahalme <jarno@ovn.org>2016-09-14 16:51:27 -0700
committerJarno Rajahalme <jarno@ovn.org>2016-09-14 16:51:27 -0700
commitdf70a7731c6d50458e46c865975d569dd3909212 (patch)
tree6dec6638bddd3d640ab133b74500883ef5855391 /ofproto/ofproto-dpif-xlate.h
parent2c7ee5248496896b3794df1d8635b70370097847 (diff)
downloadopenvswitch-df70a7731c6d50458e46c865975d569dd3909212.tar.gz
ofproto-dpif-xlate: Allow translating without side-effects.
Extend 'may_learn' attribute to also control the treatment of FIN_TIMEOUT action and asynchronous messages (packet ins, continuations), so that when 'may_learn' is 'false' and 'resubmit_stats' is 'NULL', no OpenFlow-visible side effects are generated by the translation. Correspondingly, add support for one-time asynchronous messages to xlate cache, so that all side-effects of the translation may be executed at a later stage. This will be useful for bundle commits. Signed-off-by: Jarno Rajahalme <jarno@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'ofproto/ofproto-dpif-xlate.h')
-rw-r--r--ofproto/ofproto-dpif-xlate.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/ofproto/ofproto-dpif-xlate.h b/ofproto/ofproto-dpif-xlate.h
index 29f820419..fbe1ad52f 100644
--- a/ofproto/ofproto-dpif-xlate.h
+++ b/ofproto/ofproto-dpif-xlate.h
@@ -56,12 +56,14 @@ struct xlate_in {
const struct dp_packet *packet;
/* Should OFPP_NORMAL update the MAC learning table? Should "learn"
- * actions update the flow table?
+ * actions update the flow table? Should FIN_TIMEOUT change the
+ * timeouts? Or should controller action send packet to the controller?
*
* We want to update these tables if we are actually processing a packet,
* or if we are accounting for packets that the datapath has processed, but
- * not if we are just revalidating. */
- bool may_learn;
+ * not if we are just revalidating, or if we want to execute the
+ * side-effects later via the xlate cache. */
+ bool allow_side_effects;
/* The rule initiating translation or NULL. If both 'rule' and 'ofpacts'
* are NULL, xlate_actions() will do the initial rule lookup itself. */