On Mon, Sep 18, 2017 at 02:06:52PM -0700, Greg Rose wrote:
> On 09/18/2017 01:32 PM, Ben Pfaff wrote:
> >On Mon, Sep 18, 2017 at 01:27:52PM -0700, Greg Rose wrote:
> >>On 09/18/2017 11:15 AM, Ben Pfaff wrote:
> >>>On Mon, Sep 18, 2017 at 10:58:28AM -0700, Greg Rose wrote:
> >>>>On 09/12/2017 08:37 PM, ychen wrote:
> >>>>>in function nla_alloc_flow_actions(), there is a check if action length 
> >>>>>is greater than MAX_ACTIONS_BUFSIZE(32k), then kernel datapath flow will 
> >>>>>not be installed, and packets will droppped.
> >>>>>but in function xlate_actions(), there is such clause:
> >>>>>if (nl_attr_oversized(ctx.odp_actions->size)) {
> >>>>>         /* These datapath actions are too big for a Netlink attribute, 
> >>>>> so we
> >>>>>          * can't hand them to the kernel directly.  dpif_execute() can 
> >>>>> execute
> >>>>>          * them one by one with help, so just mark the result as 
> >>>>> SLOW_ACTION to
> >>>>>          * prevent the flow from being installed. */
> >>>>>         COVERAGE_INC(xlate_actions_oversize);
> >>>>>         ctx.xout->slow |= SLOW_ACTION;
> >>>>>     }
> >>>>>and in function nl_attr_oversized(), the clause is like this:
> >>>>>return payload_size > UINT16_MAX - NLA_HDRLEN;
> >>>>>
> >>>>>
> >>>>>so we can see that in user space, max action length is almost 64K, but 
> >>>>>in kernel space, max action length is only 32K.
> >>>>>my question is: why the max action length is different? packet will drop 
> >>>>>when its action length exceeds 32K, but packet can excute in slow path 
> >>>>>when its action length exceeds 64K?
> >>>>
> >>>>It's a kernel limitation.
> >>>>
> >>>>http://www.spinics.net/lists/netdev/msg431592.html
> >>>
> >>>It sounds like the userspace limit, then, should also be 32 kB (or
> >>>possibly 16 kB).  I guess we should fix that.
> >>>
> >>
> >>Correct, the user space limit should be 32KB.  That's what it is in 
> >>iproute2.
> >
> >OVS supports Linux < 4.9 as well, so should we stick with 16 kB (or
> >detect the kernel version or limit somehow)?
> >http://www.spinics.net/lists/netdev/msg431592.html
> >
> 
> We should research how iproute2 package utilities detect what message size to 
> use
> since they have to work with older kernels as well.
> 
> I'll take an action item to do that and get back with a patch or a 
> recommendation at the least.

Thank you.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to