On Tue, Mar 19, 2024 at 6:03 PM Ilya Maximets <i.maxim...@ovn.org> wrote:
> On 3/19/24 17:43, Ales Musil wrote: > > Instead of tracking address set per struct expr_constant_set track it > > per individual struct expr_constant. This allows more fine grained > > control for I-P processing of address sets in controller. It helps with > > scenarios like matching on two address sets in one expression e.g. > > "ip4.src == {$as1, $as2}". This allows any addition or removal of > > individual adress from the set to be incrementally processed instead > > of reprocessing all the flows. > > > > This unfortunately doesn't help with the following flows: > > "ip4.src == $as1 && ip4.dst == $as2" > > "ip4.src == $as1 || ip4.dst == $as2" > > > > The memory impact should be minimal as there is only increase of 8 bytes > > per the struct expr_constant. > > > > Signed-off-by: Ales Musil <amu...@redhat.com> > > --- > > Hi, Ales. I didn't fully read the patch, but I have a quick question: > Did you test it with the case where address sets contain the same > addresses? i.e. if we have "ip4.src == {$as1, $as2}" and both contain > the same IP 'A'. Will removal of the 'A' from one of the sets be handled > correctly? > > Database protects us from such a case with a single address set, but it > can't with multiple. > > Also, we'll need a test for this scenario in case we don't have one > already. > > Best regards, Ilya Maximets. > > Hi Ilya, There are actually several tests that have duplicates across two address sets like you described. The I-P in that case will lead to reprocessing of the flows, the AS reference is removed when there are duplicates. Thanks, Ales -- Ales Musil Senior Software Engineer - OVN Core Red Hat EMEA <https://www.redhat.com> amu...@redhat.com <https://red.ht/sig> _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev