[ovs-dev] [PATCH] ofproto-dpif: Don't rate limit facet_learn() with fin_timeouts.

Justin Pettit jpettit at nicira.com
Tue Apr 2 21:26:46 UTC 2013


FWIW, it looked fine to me.

--Justin


On Apr 2, 2013, at 2:22 PM, Ethan Jackson <ethan at nicira.com> wrote:

> FYI, I accidentally merged this without review.  Justin's looking at
> it now.  If it gets anything other than a "looks good", I'll revert
> it.  My bad, sorry.
> 
> Ethan
> 
> On Tue, Apr 2, 2013 at 12:36 PM, Ethan Jackson <ethan at nicira.com> wrote:
>> In the standard case, rate limiting facet_learn() to once ever
>> 500ms, makes sense.  The worst that can happen is a learning entry
>> is expired half a second to early.  However, when using
>> fin_timeouts, we really need react quickly to delete the newly
>> stale flow.
>> 
>> Bug #15915.
>> Signed-off-by: Ethan Jackson <ethan at nicira.com>
>> ---
>> ofproto/ofproto-dpif.c |    5 +++--
>> 1 file changed, 3 insertions(+), 2 deletions(-)
>> 
>> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
>> index 32ed091..47830c1 100644
>> --- a/ofproto/ofproto-dpif.c
>> +++ b/ofproto/ofproto-dpif.c
>> @@ -4585,13 +4585,14 @@ facet_learn(struct facet *facet)
>>     struct ofproto_dpif *ofproto = ofproto_dpif_cast(facet->rule->up.ofproto);
>>     struct subfacet *subfacet= CONTAINER_OF(list_front(&facet->subfacets),
>>                                             struct subfacet, list_node);
>> +    long long int now = time_msec();
>>     struct action_xlate_ctx ctx;
>> 
>> -    if (time_msec() < facet->learn_rl) {
>> +    if (!facet->has_fin_timeout && now < facet->learn_rl) {
>>         return;
>>     }
>> 
>> -    facet->learn_rl = time_msec() + 500;
>> +    facet->learn_rl = now + 500;
>> 
>>     if (!facet->has_learn
>>         && !facet->has_normal
>> --
>> 1.7.9.5
>> 
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev




More information about the dev mailing list