From: wangyunjian <wangyunjian@xxxxxxxxxx> Date: Thu, 17 Jan 2019 09:46:41 +0800 > From: Yunjian Wang <wangyunjian@xxxxxxxxxx> > > The skb header should be set to ethernet header before using > is_skb_forwardable. Because the ethernet header length has been > considered in is_skb_forwardable(including dev->hard_header_len > length). > > To reproduce the issue: > 1, add 2 ports on linux bridge br using following commands: > $ brctl addbr br > $ brctl addif br eth0 > $ brctl addif br eth1 > 2, the MTU of eth0 and eth1 is 1500 > 3, send a packet(Data 1480, UDP 8, IP 20, Ethernet 14, VLAN 4) > from eth0 to eth1 > > So the expect result is packet larger than 1500 cannot pass through > eth0 and eth1. But currently, the packet passes through success, it > means eth1's MTU limit doesn't take effect. > > Fixes: f6367b4660dd ("bridge: use is_skb_forwardable in forward path") > Cc: bridge@xxxxxxxxxxxxxxxxxxxxxxxxxx > Cc: Nkolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx> > Cc: Roopa Prabhu <roopa@xxxxxxxxxxxxxxxxxxx> > Cc: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Yunjian Wang <wangyunjian@xxxxxxxxxx> Applied and queued up for -stable.