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

Reply via email to