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

Reply via email to