summaryrefslogtreecommitdiff
path: root/ofproto/ofproto-dpif-xlate-cache.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-cache.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-cache.h')
-rw-r--r--ofproto/ofproto-dpif-xlate-cache.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/ofproto/ofproto-dpif-xlate-cache.h b/ofproto/ofproto-dpif-xlate-cache.h
index 3643177f0..4b30181a7 100644
--- a/ofproto/ofproto-dpif-xlate-cache.h
+++ b/ofproto/ofproto-dpif-xlate-cache.h
@@ -46,11 +46,12 @@ enum xc_type {
XC_NETDEV,
XC_NETFLOW,
XC_MIRROR,
- XC_LEARN,
+ XC_LEARN, /* Calls back to ofproto. */
XC_NORMAL,
- XC_FIN_TIMEOUT,
+ XC_FIN_TIMEOUT, /* Calls back to ofproto. */
XC_GROUP,
XC_TNL_NEIGH,
+ XC_CONTROLLER,
};
/* xlate_cache entries hold enough information to perform the side effects of
@@ -113,6 +114,10 @@ struct xc_entry {
char br_name[IFNAMSIZ];
struct in6_addr d_ipv6;
} tnl_neigh_cache;
+ struct {
+ struct ofproto_dpif *ofproto;
+ struct ofproto_async_msg *am;
+ } controller;
};
};