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