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 <[email protected]>
> ---

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.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to