Eric Dumazet <[email protected]> writes: > eth_type_trans() assumes ETH_HLEN bytes are present in skb->head. > NIC drivers always provide this, and they should keep using the fast > version. > > Devices looping skbs from their transmit path back to their receive > path get skbs built by the stack instead. Their link-layer header > might have been popped by tc actions (act_vlan pop_eth, act_ife decode) > or OVS actions (pop_eth + pop_mpls / pop_nsh), leaving fewer than > ETH_HLEN bytes in the linear part. eth_type_trans() then hits > the BUG() in __skb_pull(). > > Add eth_type_trans_careful(), which first pulls the Ethernet header, > and returns a drop reason on failure, so that the few devices exposed > to this can drop such packets. > > Signed-off-by: Eric Dumazet <[email protected]> > ---
Reviewed-by: Aaron Conole <[email protected]> _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
