Series now pushed to master,

  Jarno

> On Sep 14, 2016, at 2:57 PM, Jarno Rajahalme <ja...@ovn.org> wrote:
> 
>> 
>> On Sep 13, 2016, at 5:09 PM, Ben Pfaff <b...@ovn.org <mailto:b...@ovn.org>> 
>> wrote:
>> 
>> On Mon, Sep 12, 2016 at 01:52:43PM -0700, Jarno Rajahalme wrote:
>>> Add support for OFPT_PACKET_OUT messages in bundles.
>>> 
>>> While ovs-ofctl already has a packet-out command, we did not have a
>>> string parser for it, as the parsing was done directly from command
>>> line arguments.
>>> 
>>> This patch adds the string parser for packet-out messages, and adds a
>>> new ofctl/packet-out ovs-appctl command that can be used when
>>> ovs-ofctl is used as a flow monitor.
>>> 
>>> The new packet-out parser is further supported with the ovs-ofctl
>>> bundle command, which allows bundles to mix flow mods, group mods and
>>> packet-out messages.  Also the packet-outs in bundles are only
>>> executed if the whole bundle is successful.  A failing packet-out
>>> translation may also make the whole bundle to fail.
>>> 
>>> Signed-off-by: Jarno Rajahalme <ja...@ovn.org <mailto:ja...@ovn.org>>
>> 
>> Should the existing packet-out command in ovs-ofctl also support this
>> new syntax?  It could distinguish it from the legacy syntax by checking
>> the number of arguments (1 versus 4+).  If so, perhaps we should
>> deprecate the legacy syntax.
> 
> OK.
> 
>> I think that parse_ofp_packet_out_str__() has some memory leaks inside
>> the while loop: if it detects than one error, then the earlier one is
>> leaked.
> 
> Fixed by adding “goto out;” after each time error is set to a non-NULL value, 
> rather than checking after multiple possible errors.
> 
>> 
>> It's a little unusual that ofputil_encode_bundle_msgs() frees the
>> bundled messages and that there's no separate way to do that without
>> encoding.
> 
> Added a separate ofputil_free_bundle_msgs(), and removed the freeing from the 
> ofputil_encode_bundle_msgs().
> 
>> 
>> I'm surprised that do_bundle_commit() potentially increases
>> ofproto->tables_version more than once (in the loop labeled
>> "4. Finish.").  I would have guessed that it would do that once, to make
>> visible everything in the bundle.
>> 
> 
> We have no versioning for port_mods, which OpenFlow spec says need to be 
> supported in bundles. If the bundle does not include port mods, everything is 
> published as one new version, but if there are port mods, then the other 
> (flow, group, packet out) mods before and after each port mod are made 
> visible as one new version. I presume that if the caller is not specifying 
> the ‘ordered’ flag, we could first issue all the port mods and then commit 
> everything else as one version, but I have not wanted to deal with the 
> complications of ‘out-of-order’ handling of messages, as we would need to 
> detect potential conflicts among the messages. E.g., if one flow mod deletes 
> all the flows and another adds one, out-of-order execution could be 
> considered ‘conflicting’. Now we always execute everything in order, so the 
> semantics is clear. However, I’m not sure if we should still detect such 
> conflicts if the client does not specify the ‘ordered’ flag.
> 
> Thanks a lot for the reviews, I’ll push the patches 6-13 in a moment (I 
> pushed patches 1-5 already yesterday).
> 
>   Jarno
> 
>> Acked-by: Ben Pfaff <b...@ovn.org <mailto:b...@ovn.org>>

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to