On Tue, Feb 23, 2016 at 4:53 AM, Paolo Abeni <pab...@redhat.com> wrote: > This method allows the controlling device (i.e. the bridge) to specify > additional headroom to be allocated for skb head on frame reception. > > Signed-off-by: Paolo Abeni <pab...@redhat.com> > --- > include/linux/netdevice.h | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h > index 47671ce0..fb74277 100644 > --- a/include/linux/netdevice.h > +++ b/include/linux/netdevice.h > @@ -1093,6 +1093,12 @@ struct tc_to_netdev { > * This function is used to get egress tunnel information for given skb. > * This is useful for retrieving outer tunnel header parameters while > * sampling packet. ...
> /** > @@ -1315,6 +1323,8 @@ struct net_device_ops { > * @IFF_L3MDEV_SLAVE: device is enslaved to an L3 master device > * @IFF_TEAM: device is a team device > * @IFF_RXFH_CONFIGURED: device has had Rx Flow indirection table configured > + * @IFF_PHONY_HEADROOM: the headroom value is controlled by an external > + * entity (i.e. the master device for bridged veth) > */ > enum netdev_priv_flags { > IFF_802_1Q_VLAN = 1<<0, > @@ -1343,6 +1353,7 @@ enum netdev_priv_flags { > IFF_L3MDEV_SLAVE = 1<<23, > IFF_TEAM = 1<<24, > IFF_RXFH_CONFIGURED = 1<<25, > + IFF_PHONY_HEADROOM = 1<<26, > }; > > #define IFF_802_1Q_VLAN IFF_802_1Q_VLAN > @@ -1937,6 +1948,15 @@ struct netdev_queue *netdev_pick_tx(struct net_device > *dev, > struct sk_buff *skb, > void *accel_priv); > > +/* returns the headroom that the master device needs to take in account > + * when forwarding to this dev > + */ > +static inline unsigned netdev_get_fwd_headroom(struct net_device *dev) > +{ > + return (dev->priv_flags && IFF_PHONY_HEADROOM) ? dev->needed_headroom > : > + 0; > +} > + This looks like typo. It should '&' to check for the bitfield.