On Mon, Jun 23, 2014 at 6:10 PM, Joe Stringer <joestrin...@nicira.com>
wrote:

> On 24 June 2014 05:26, Alex Wang <al...@nicira.com> wrote:
>
>> (snip)
>>
>> Totally agree,
>>
>> So, I'm thinking this solution,
>>
>> - in revalidate_ukey(), if need_revalidate is set, we always:
>> 1. save the current xcache to old_xcache pointers.
>> 2. conduct full revalidation (but never push stats during revalidation)
>> and
>>     get a new xcache.
>> 3.1. if the ukey is the same, delete the new xcache and push
>> stats/side-effects.
>> 3.2. if the ukey is different, only push stats to old_xcache.  delete the
>>        old_xcache, and save the pointer to new xcache.
>>
>
> If I follow correctly, the logic you specify:
>
> (a) Stats are always pushed using the old xcache.
> I think this is consistent with the current patch.
>
> (b) Side-effects are only pushed if revalidation passes, and using the old
> xcache.
> The main difference between this and the current patch, is this suggests
> using the old xcache rather than the new one.  However..
>


Yes, your understanding is correct.




>  (c) If the higher layer state changes, but the ukey remains the same, we
> will always use the old xcache.
> This is a possibility for eg, flows with a learn action that doesn't
> affect its own pipeline. Using the old xcache may trigger learn actions
> that have been removed from the flow table. Failing to replace the xcache
> could cause this old state to hang around and cause incorrect flow learning
> for a long time.
>
>

I agree with your analysis.  Based on the discussion offline, there is
really
no good answer to the question.  We think it is least wrong to always
try attributing the stats/side-effects to new userspace OpenFlow pipeline.


We will reconsider the issue after Joe's ukey/xcache creation in userspace
work.


Thanks,
Alex Wang,
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to