On Mon, May 18, 2015 at 04:10:28PM -0700, Jarno Rajahalme wrote: > Each rule is now added or deleted in a specific tables version. Flow > tables are versioned with a monotonically increasing 64-bit integer, > where positive values are valid version numbers. > > Rule modifications are implemented as an insertion of a new rule and a > deletion of the old rule, both taking place in the same tables > version. Since concurrent lookups may use different versions, both > the old and new rule must be available for lookups at the same time. > > The ofproto provider interface is changed to accomodate the above. As > rule's actions need not be modified any more, we no longer need > 'rule_premodify_actions', nor 'rule_modify_actions'. 'rule_insert' > now takes a pointer to the old rule and adds a flag that tells whether > the old stats should be forwarded to the new rule or not (this > replaces the 'reset_counters' flag of the now removed > 'rule_modify_actions'). > > Versioning all flow table changes has the side effect of making > learned flows visible for future lookups only. I.e., the upcall that > executes the learn action, will not see the newly learned action in > it's classifier lookups. Only upcalls that start executing after the > new flow was added will match on it. > > Classifier versioning only affects the classifier lookups. Classifier > iterators and other control functions operating on the classifier will > always see the latest version of the classifier. > > Signed-off-by: Jarno Rajahalme <jrajaha...@nicira.com>
Wow, this is really cool. I feel like I need to read it properly when I'm feeling fresher, though. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev