On Fri, Mar 5, 2021 at 2:54 PM Ben Pfaff <[email protected]> wrote: > > The Logical_Flow table can have rows that differ only in actions. Such > rows would have identical matches and priorities and be in the same > datapath. At first glance, any these rows would be a bug, since they'd > match the same packets and there'd be no way to choose between them. > > In practice, though, actions can have prerequisites. If two different > flows have mutually exclusive prerequisites, the otherwise identical > flows are actually valid. > > This comes up in practice in DNS response flows. There are two of > them, in the same table and pipeline and with the same match expression > "udp.dst == 53 && reg0[4]", but one of them includes the action > "ip4.src <-> ip4.dst;" and the other "ip6.src <-> ip6.dst;". Because > the first has an IPv4 prerequisite and the latter an IPv6 prerequisite, > their matches don't really overlap. > > Anyway, regardless of whether they're valid, it's still good to sort > consistently, so that's all a digression. > > Signed-off-by: Ben Pfaff <[email protected]> > --- > utilities/ovn-sbctl.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/utilities/ovn-sbctl.c b/utilities/ovn-sbctl.c > index c38e8ec3bdbd..94e33d2bdfe6 100644 > --- a/utilities/ovn-sbctl.c > +++ b/utilities/ovn-sbctl.c > @@ -754,13 +754,14 @@ sbctl_lflow_cmp(const void *a_, const void *b_) > > int a_pipeline = pipeline_encode(a->pipeline); > int b_pipeline = pipeline_encode(b->pipeline); > - return (a_pipeline > b_pipeline ? 1 > + cmp = (a_pipeline > b_pipeline ? 1 > : a_pipeline < b_pipeline ? -1 > : a->table_id > b->table_id ? 1 > : a->table_id < b->table_id ? -1 > : a->priority > b->priority ? -1 > : a->priority < b->priority ? 1 > : strcmp(a->match, b->match)); > + return cmp ? cmp : strcmp(a->actions, b->actions); > } > > static char * > -- > 2.29.2 > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
Acked-by: Han Zhou <[email protected]> _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
