Our hit-less resync proposal is not really about atomic updates to flow tables. 
It is rather a generic, simple, and efficient way for an SDN controller to 
ensure that the entire flow state (flows, groups, meters) of a switch is 
re-aligned with the master state on the controller, while continuing non-stop 
forwarding. A controller would typically perform it after a local restart or a 
temporary connection loss. 

The mentioned approaches for atomic updates of flow tables do not really help 
in situations where a controller needs to resynchronize a million of flow, 
group and meter entries. Our proposed method works in-place on the OVS and does 
not require any extra resources other than a generation field per entry.

The procedure has been implemented and in use Ericsson's OVS vSwitch and ODL 
controller for some time and we would like to upstream it both to OVS and ODL 
now. We have a patch ready that we can submit for review. 

> -----Original Message-----
> From: Ben Pfaff [mailto:b...@ovn.org]
> Sent: Friday, January 22, 2016 5:11 PM
> To: Zoltán Balogh
> Cc: dev@openvswitch.org
> Subject: Re: [ovs-dev] Hitless resynchronisation of forwarding state
> 
> On Fri, Jan 22, 2016 at 03:32:21PM +0000, Zoltán Balogh wrote:
> > We have a proposal to add an extension to OVS which makes
> > resynchronization of forwarding state between switch and controller
> > simpler and faster.
> 
> There are already multiple ways that one can atomically replace the contents 
> of the flow table.
> 
> One is to use flow table 0 just for a single flow that contains a "resubmit" 
> action or "goto_table" instruction to a second table, e.g.
> table 1.  To update the flow table, delete and replace all the flows in a 
> third table, e.g. table 2, then change flow table 0 to "resubmit"
> to table 2 instead.  One can alternatively partition individual flow tables 
> on the basis of some metadata field.
> 
> Another is to use transactional flow table updates using the OpenFlow 
> "bundle" feature.  Start out the transaction by deleting all the
> existing flows, then add the flows you actually want, then commit the 
> transaction.  Although this feature is in OpenFlow 1.4+ only,
> OVS does support it already.
> 
> I don't see a need for another mechanism.
> 
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to