Thanks Ales. I pushed this series to main. On Thu, Jan 15, 2026 at 4:07 AM Ales Musil <[email protected]> wrote: > > > > On Wed, Jan 14, 2026 at 9:45 PM Mark Michelson via dev > <[email protected]> wrote: >> >> The lflow_table_add_lflow() function takes 13 arguments. Many helper >> macros exist to facilitate filling in those 13 arguments without having >> to spell them all out every time. Unfortunately, the amount of different >> macros has gotten a bit out of hand. Some macros, like >> ovn_lflow_add_with_hint__() have misleading names. Some macros, like >> ovn_lflow_add_drop_with_lport_hint_and_desc() have horribly unwieldy >> names. Trying to add a new macro to the list is a minefield since you >> need to cherry-pick exactly which arguments the new macro should require >> and which ones the macro should fill in automatically. >> >> This series seeks to simplify things by getting rid of all helper macros >> except for: >> * ovn_lflow_add() >> * ovn_lflow_add_with_dp_group() >> * ovn_lflow_add_default_drop() >> >> We accomplish this by using variadic macros. A base set of required >> arguments is used with each macro. Helper macros can then be used to >> add additional arguments beyond the base. This allows for flexible >> use of additional arguments without the need to define a bunch of >> different macros for every possible case. >> >> Differences between v3 and v4 of this series: >> * The lflow refactor has been committed to main, so this is rebased on >> top of those changes. This mainly affects patch 1. >> * Patch 6 of this series is quite different now. Instead of adding a >> WITH_DP_GROUP() helper macro, we now retain the >> ovn_lflow_add_with_dp_group() macro, but redefine it. This is because >> passing a NULL ovn_datapath to ovn_lflow_add() does not work properly. >> This is because ovn_lflow_add() dereferences the OD argument, and if >> that argument is NULL, then that results in a compiler error. I >> decided that the best way to handle this was to keep the >> ovn_lflow_add_with_dp_group() macro, since that ensures that passing >> a single ovn_datapath and passing a datapath bitmap are mutually >> exclusive operations. We still maintain a safety check in >> lflow_table_add_lflow() to ensure that we pass valid arguments to >> lflow_table_add_lflow__(). >> >> Mark Michelson (9): >> lflow-mgr: Use struct argument for lflow addition. >> lflows: Create new ovn_lflow_add_default_drop(). >> lflows: Remove ovn_lflow_add_with_hint(). >> lflows: Remove ovn_lflow_add_with_lport_and_hint(). >> lflows: Remove ovn_lflow_metered() and ovn_lflow_add_with_hint__(). >> lflows: Redefine ovn_lflow_add_with_dp_group(). >> lflows: Remove ovn_lflow_add_drop_with_desc(). >> lflows: Remove ovn_lflow_add_drop_with_lport_hint_and_desc(). >> lflows: Make non-struct version of lflow_table_add_lflow() private. >> >> northd/lflow-mgr.c | 51 +- >> northd/lflow-mgr.h | 137 ++-- >> northd/northd.c | 1571 ++++++++++++++++++++------------------------ >> 3 files changed, 786 insertions(+), 973 deletions(-) >> >> -- >> 2.51.1 >> >> _______________________________________________ >> dev mailing list >> [email protected] >> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >> > > Looks good to me, thanks. > Acked-by: Ales Musil <[email protected]>
_______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
