[ovs-dev] [PATCH] ofproto: Add relaxed group_mod command ADD_OR_MOD

Jan Scheurich jan.scheurich at web.de
Mon May 30 22:05:30 UTC 2016


Could someone perhaps have a look at the latest version of the patch? 
Thanks a lot, Jan


On Sat, 21 May 2016 00:42:49 +0200
Jan Scheurich <jan.scheurich at web.de> wrote:

> *** Reposting the patch once more. First two attempts got corrupted
> *** *** Sorry, still trying to find a suitable email client ***
> 
> This patch adds support for a new Group Mod command OFPGC_ADD_OR_MOD
> to OVS for all OpenFlow versions supporting groups (OF11 and higher).
> The new ADD_OR_MOD creates a group that does not yet exist (like ADD)
> or modifies an existing group (like MODIFY).
> 
> Rational: In OpenFlow 1.x the Group Mod commands OFPGC_ADD and
> OFPGC_MODIFY have strict semantics: ADD fails if the group exists,
> while MODIFY fails if the group does not exist. This requires a
> controller to exactly know the state of the switch when programming a
> group in order not run the risk of getting an OFP Error message in
> response. This is hard to achieve and maintain at all times in view of
> possible switch and controller restarts or other connection losses
> between switch and controller.
> 
> Due to the un-acknowledged nature of the Group Mod message programming
> groups safely and efficiently at the same time is virtually impossible
> as the controller has to either query the existence of the group prior
> to each Group Mod message or to insert a Barrier Request/Reply after
> every group to be sure that no Error can be received at a later stage
> and require a complicated roll-back of any dependent actions taken
> between the failed Group Mod and the Error.
> 
> In the ovs-ofctl command line the new Group Mod command is made
> available in form of new write-group(s) commands that can be used in
> the same way as add-group(s) but do not lead to an error when a groups
> exists:
> 
> ovs-ofctl -Oopenflow13 del-groups br-int group_id=100
> 
> ovs-ofctl -Oopenflow13 write-group br-int
> group_id=100,type=indirect,bucket=actions=2 ovs-ofctl -Oopenflow13
> dump-groups br-int OFPST_GROUP_DESC reply (OF1.3) (xid=0x2):
>  group_id=100,type=indirect,bucket=actions=output:2
> 
> ovs-ofctl -Oopenflow13 write-group br-int
> group_id=100,type=indirect,bucket=actions=3 ovs-ofctl -Oopenflow13
> dump-groups br-int OFPST_GROUP_DESC reply (OF1.3) (xid=0x2):
>  group_id=100,type=indirect,bucket=actions=output:3
> 
> 



More information about the dev mailing list