That sounds like a good idea. Do you want to try to write up a patch for that approach?
The current series still seems like a good idea to me, do you have an opinion? On Mon, Feb 05, 2018 at 07:57:20PM +0800, Huanle Han wrote: > The patches make "ODP_FIT_TOO_LITTLE" logic more clear for me. > But it seems not fix the problem I mentioned at beginnig: > revalidate_ukey__() always return UKEY_DELETE for igmp, because > flow_wildcards_has_extra() return true. > > Should we UKEY_KEEP igmp or other "ODP_FIT_TOO_LITTLE" flows whose > action is already "slow_path(action, match)" ? > > On Thu, Jan 25, 2018 at 3:40 AM, Ben Pfaff <b...@ovn.org> wrote: > > OVS datapaths don't understand or parse IGMP fields, but OVS userspace > > does, so this commit updates odp_flow_key_to_flow() to report that properly > > to the caller. > > > > Reported-by: Huanle Han <hanxue...@gmail.com> > > Reported-at: > > https://mail.openvswitch.org/pipermail/ovs-dev/2018-January/343665.html > > Signed-off-by: Ben Pfaff <b...@ovn.org> > > --- > > lib/odp-util.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/lib/odp-util.c b/lib/odp-util.c > > index 6a29a76de5cd..67fd538e8aea 100644 > > --- a/lib/odp-util.c > > +++ b/lib/odp-util.c > > @@ -6210,6 +6210,11 @@ parse_l2_5_onward(const struct nlattr > > *attrs[OVS_KEY_ATTR_MAX + 1], > > } > > } > > } > > + } else if (src_flow->nw_proto == IPPROTO_IGMP > > + && src_flow->dl_type == htons(ETH_TYPE_IP)) { > > + /* OVS userspace parses the IGMP type, code, and group, but its > > + * datapaths do not, so there is always missing information. */ > > + return ODP_FIT_TOO_LITTLE; > > } > > if (is_mask && expected_bit != OVS_KEY_ATTR_UNSPEC) { > > if ((flow->tp_src || flow->tp_dst) && flow->nw_proto != 0xff) { > > -- > > 2.10.2 > > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev