[ovs-discuss] Query regarding Bundle Commit and Rollback

Jarno Rajahalme jrajahalme at nicira.com
Thu Feb 19 17:34:01 UTC 2015


On Feb 18, 2015, at 8:06 AM, Ben Pfaff <blp at nicira.com> wrote:

> On Wed, Feb 18, 2015 at 02:49:12PM +0530, Chethan C R wrote:
>> I am currently investigating on the implementation of OF 1.4 bundles.
>> 
>> Per Spec, the implementation should be able to support at least port mod
>> and flow mod in any order.
>> 
>> However, its not clear about handling commands which will modify multiple
>> matching flows. For example, a flow mod with delete on OFPTT_ALL will
>> trigger a lot of churn in the openflow flow tables. To support rollback, we
>> need to be backing up a considerable amount of data.
>> 
>> When the switch has tables spread across SW and HW, keeping a staging area
>> where the bundle messages are applied may not be straight forward.
>> 
>> I am curious to know how the commit and rollback logic is handled and if
>> these scenarios are thought of.
> 
> The bundle requests aren't supported yet.  When they are, though, it's
> pretty important to handle general-purpose rollback.  Jarno has done
> some preliminary work on bundle support, so I'm bringing him into the
> conversation to share his thoughts.
> 

I have done some initial work on the rollback, but this has not been posted yet. The gist of it is to stage changes so that they are not visible to lookups (e.g., staging a delete on OFPTT_ALL will mark all rules to be deleted, but the actual delete will be postponed). When all messages in the bundle are successfully staged we know that nothing can fail, and we can finalize the commit at this point. If any conflicts are found, all staged changes are rolled back.

> Hardware support isn't a priority because no one has ever contributed
> support for a hardware platform.


I’d imagine HW could be managed by keeping all flows in SW and reflecting the changes to HW flows only after a successful commit.

  Jarno


More information about the discuss mailing list