On 4/5/23 21:48, Ilya Maximets wrote:
> This patch set covers removal of expressions which are subsets of other
> wider expressions. This allows to avoid flow explosion in case of
> negative matches. More details are in commit messages.
>
> Version 2:
> * Became a patch set.
> * Added tests and missing bitmap.h include.
> * Code switched to work with bitwise maskable fields only (ORDINAL).
> * Added a new patch to combine smaller expressions into wider ones.
> * Added a patch to fix a crash uncovered with expression aggregation.
>
> Version 3:
> * Dropped patch 3 for performance reasons for now, because it doesn't
> allow to make use of I-P in many cases.
> * Patch 1 re-worked to not cause performance issues for normal
> address sets generated in OVN.
> * Performance of the patch 1 significantly improved by not perfroming
> a full n^2 search and not comparing huge empty parts of subvalues.
> The patch became a bit less straightforward, but I hope it's still
> fairly readable.
>
> Version 4:
> * Added extra comments.
> * Added ACK from Han to patch 2.
> * Re-worked path shortening (next[]) to track the last non-NULL entry.
> * Restricted superset optmization to expressions that do not track
> address sets. To preserve ability to use I-P. [Han]
Forgot to add:
* Fixed the memset value: s/0xf/0xff/. [Han]
>
> Ilya Maximets (2):
> expr: Remove supersets from OR expressions.
> expr: Avoid crash if all sub-expressions crushed down to 'true'.
>
> include/ovn/expr.h | 1 +
> lib/expr.c | 255 +++++++++++++++++++++++++++++++++++----------
> tests/ovn.at | 12 +++
> 3 files changed, 212 insertions(+), 56 deletions(-)
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev