On Tue, Mar 22, 2016 at 08:49:08AM -0700, Guru Shetty wrote:
> On 22 March 2016 at 08:33, Russell Bryant <russ...@ovn.org> wrote:
> 
> > 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?
> >
> Macro was probably wrong use of word. I mean to say, something like (very
> crude):  ct_commit(ct_label=MARK_FOR_DELETION)

It could be nice to add a feature so that ovn-northd could define names
for subfields, e.g. to define a "mark_for_deletion" bit that stands for
ct_label[0].
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to