On Sun, Dec 04, 2016 at 04:22:40PM -0800, Pravin Shelar wrote: > On Fri, Dec 2, 2016 at 1:25 AM, Jiri Benc <jb...@redhat.com> wrote: > > On Thu, 1 Dec 2016 11:50:00 -0800, Pravin Shelar wrote: > >> This is not changing any behavior compared to current OVS vlan checks. > >> Single vlan header is not considered for MTU check. > > > > It is changing it. > > > > Consider the case when there's an interface with MTU 1500 forwarding to > > an interface with MTU 1496. Obviously, full-sized vlan frames > > ingressing on the first interface are not forwardable to the second > > one. Yet, if the vlan tag is accelerated (and thus not counted in > > skb->len), is_skb_forwardable happily returns true because of the check > > > > len = dev->mtu + dev->hard_header_len + VLAN_HLEN; > > if (skb->len <= len) > > > ok, This case would be allowed due to this patch. But core linux stack > and bridge is using this check then why not just use same forwarding > check in OVS too, this make it consistent with core networking > forwarding expectations.
Should we not also follow the "skbs are untagged" approach that the rest of the kernel uses? I'm referring to patches 1 and 2 form Jiri's series "openvswitch: make vlan handling consistent". With those changes is_skb_forwardable() would behave as expected here.