On Fri, Feb 24, 2017 at 06:58:00PM -0800, Daniele Di Proietto wrote:
> With this commit we honor the newly introduced limit to the learn
> action.
> 
> When learning a new rule (with the limit set), the rule will hold a
> reference to a counter.  The ukey that learned the rule will also keep
> the same reference,  so the counter will be decremented when both the
> ukey and the original rule have been deleted.
> 
> This means that there's a small window between the learn flow expiry and
> the next revalidation in which new flows are not learned because OVS
> thinks that we would exceed the limit.  I think this is better that the
> alternative, because if we allow learning in that interval we're not
> strictly enforcing the limit, because we still have the datapath flows
> that are passing traffic for expired rules.
> 
> There's a small corner case when we have to slowpath the ukey.  This
> happens when:
> * The learned rule has expired (or has been deleted).
> * The ukey that learned the rule is still in the datapath.
> * No packets hit the datapath flow recently.
> In this case we cannot relearn the rule (because there are no new
> packets), and the actions might depend on the learn execution, so the
> only option is to slowpath the ukey.  I don't think this has big
> performance implications since it's done only for ukey with no traffic.
> 
> Signed-off-by: Daniele Di Proietto <diproiet...@vmware.com>

You mentioned face-to-face that a change I suggested earlier in the
series would simplify this one.  If it's OK, then I'll wait to review
this patch and patch 7 until you've managed to do the simplification.

Thanks,

Ben.
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to