On Wed, Jan 24, 2018 at 09:41:10AM -0800, Ben Pfaff wrote: > From: Huanle Han <hanxue...@gmail.com> > > Currently, ovs datapath doesn't support to mask igmp type. Masking igmp > type made flow_wildcards_has_extra() always true when revalidate. And > igmp flow is never kept in datapath. > > Signed-off-by: Huanle Han <hanxue...@gmail.com> > --- > ofproto/ofproto-dpif-xlate.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c > index 40c04cc4fb4a..51ddc93a0935 100644 > --- a/ofproto/ofproto-dpif-xlate.c > +++ b/ofproto/ofproto-dpif-xlate.c > @@ -2808,7 +2808,6 @@ xlate_normal(struct xlate_ctx *ctx) > */ > ctx->xout->slow |= SLOW_ACTION; > > - memset(&wc->masks.tp_src, 0xff, sizeof wc->masks.tp_src); > if (mcast_snooping_is_membership(flow->tp_src) || > mcast_snooping_is_query(flow->tp_src)) { > if (ctx->xin->allow_side_effects && ctx->xin->packet) {
Thanks for pointing out the problem. I think that this is an aspect of a bigger problem, and I do not think that this patch solves it. The bigger problem is that translation can yield a datapath flow match that is more specific than the datapath can implement. Such a flow match can only be installed in the datapath by leaving out some of the match criteria. If that is done, it will lead to incorrect forwarding if a packet comes along that matches the installed match but not the intended match. This situation is supposed to be handled this way: - odp_flow_key_to_flow() reports ODP_FIT_TOO_LITTLE, indicating that the datapath didn't parse fields that userspace understands. - The upcall code installs a slow-path flow instead of a flow that actually executes all of the actions. However, I see now that somehow both parts of this solution are missing. For the first part, odp_flow_key_to_flow() lacks the special case for IGMP that it needs. For the second part, the code to slow-path incomplete matches apparently got dropped around 2013. I'll send a series soon that addresses both of these. I'd appreciate your feedback on whether it fixes the problem that you observe. _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev