Hello. On 2/25/2016 2:09 PM, Paolo Abeni 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> --- v1 -> v2: - fixed netdev_get_fwd_headroom() - added netdev_set_rx_headroom() and netdev_reset_rx_headroom() helpers --- include/linux/netdevice.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index e52077f..8f53674 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. + * * int (*ndo_set_rx_headroom)(struct net_device *dev, int needed_headroom);
It's *void* in the declaration.
+ * This function is used to specify the headroom that the skb must + * consider when allocation skb during packet reception. Setting + * appropriate rx headroom value allows avoiding skb head copy on + * forward. Setting a negative value reset the rx headroom to the + * default value. * */ struct net_device_ops { @@ -1278,6 +1284,8 @@ struct net_device_ops { bool proto_down); int (*ndo_fill_metadata_dst)(struct net_device *dev, struct sk_buff *skb); + void (*ndo_set_rx_headroom)(struct net_device *dev, + int needed_headroom); }; /**
[...] MBR, Sergei