I’ll post a new version of this and the related next patch separately in a 
minute,

  Jarno

> On Nov 24, 2015, at 11:26 AM, Jarno Rajahalme <[email protected]> wrote:
> 
> 
>> On Nov 24, 2015, at 10:17 AM, Ben Pfaff <[email protected]> wrote:
>> 
>> On Fri, Nov 06, 2015 at 04:10:48PM -0800, Jarno Rajahalme wrote:
>>> Sometimes xlate_actions() fails due to too deep recursion, too many
>>> MPLS labels, or missing recirculation context.  Make xlate_actions()
>>> fail in these circumstances, so that we can install a drop flow
>>> instead of a flow with partially translated actions.
>>> 
>>> Before this action it was possible that the revalidation installed a
>>> flow with a recirculation ID with an invalid recirc ID (== 0), due to
>>> the introduction of in-place modification in commit 43b2f131a229
>>> (ofproto: Allow in-place modifications of datapath flows).
>>> 
>>> Signed-off-by: Jarno Rajahalme <[email protected]>
>> 
>> Do the callers do something on failure that is significantly different
>> from what they'd do on a success that returns no actions?  Flow
>> translation is already hard enough for the clients to get right, and it
>> would be ideal if they didn't have to be even more careful.
> 
> OK, I see that we should return with a “drop flow” (empty set of actions and 
> xout.slow = false) when an translation error happens. 
> ofproto_dpif_execute_actions could benefit from knowing that the translation 
> failed, so that it can return an error rather than silently pretend that 
> there were no actions. Same with trace, it will be valuable to be able to 
> report a translation failure (and note that due to it a drop flow was 
> returned).
> 
>  Jarno
> 

_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to