On Tue, Mar 22, 2016 at 11:22 AM, Guru Shetty <g...@ovn.org> wrote:

>
>
> On 21 March 2016 at 16:40, Russell Bryant <russ...@ovn.org> wrote:
>
>> On Mon, Mar 21, 2016 at 11:23 AM, Russell Bryant <russ...@ovn.org> wrote:
>>
>>>
>>>
>>> On Mon, Mar 21, 2016 at 11:16 AM, Guru Shetty <g...@ovn.org> wrote:
>>>
>>>>
>>>>
>>>> On 21 March 2016 at 07:54, Russell Bryant <russ...@ovn.org> wrote:
>>>>
>>>>> Update the "ct_commit;" logical flow action to optionally take
>>>>> one or two parameters, setting the value of "ct_mark" or "ct_label".
>>>>> Supported ct_commit syntax now includes:
>>>>>
>>>>>     ct_commit;
>>>>>     ct_commit();
>>>>>     ct_commit(ct_mark=1);
>>>>>     ct_commit(ct_label=1);
>>>>>     ct_commit(ct_mark=1, ct_label=1);
>>>>>
>>>>> Setting ct_mark via this type of logical flow results in an OpenFlow
>>>>> flow that looks like:
>>>>>
>>>>>
>>>>> actions=ct(commit,zone=NXM_NX_REG5[0..15],exec(set_field:0x1->ct_mark))
>>>>>
>>>>> Similarly, setting ct_label results in:
>>>>>
>>>>>
>>>>> actions=ct(commit,zone=NXM_NX_REG5[0..15],exec(set_field:0x1->ct_label))
>>>>>
>>>>
>>>> I think this feature makes it tricky to share zones with other stateful
>>>> additions. If you want to commit only once for all stateful services, then
>>>> set-field for ct_mark and ct_label will need to be loaded to registers in
>>>> advance, which I guess would mean that you loose 2 registers for this
>>>> purpose.
>>>>
>>>
>>> Do you have any thoughts on how I could change this to cause you less
>>> pain on the LB series?  The next patch shows how this is used.  In
>>> practice, it only uses ct_label.
>>>
>>
>> I seem to recall that you had used 2 registers, but then Ben pointed out
>> that you could just use 2 bits of a single register.  The next patch only
>> uses a single bit of ct_label, so it could just use another bit out of an
>> "OVN bit flags" register to signal the value of ct_label.
>>
>
> Right. So I will use 2 bits of a single register. I had a quick look at
> the 3rd patch (and its different versions). So looks like ct_mark will not
> be used? And only one bit in ct_label is used. I wonder whether the action
> setting here in the logical flows should be a macro instead of INT. The
> macro will signify a single bit.
>

That's right.  It's currently only using a single bit of ct_label and not
using ct_mark at all.  I was just trying add more generally useful
Logical_Flow support for any future needs.

I'm not sure what you mean by using a macro here.  Can you expand on the
idea?

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

Reply via email to