[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130821215829.1d65d38e@nehalam.linuxnetplumber.net>
Date: Wed, 21 Aug 2013 21:58:29 -0700
From: Stephen Hemminger <stephen@...workplumber.org>
To: "Florian Fainelli" <f.fainelli@...il.com>
Cc: netdev@...r.kernel.org, eric.dumazet@...il.com,
vyasevic@...hat.com, davem@...emloft.net
Subject: Re: [RFC PATCH] bridge: inherit slave devices needed_headroom
On Tue, 20 Aug 2013 10:21:45 +0100
"Florian Fainelli" <f.fainelli@...il.com> wrote:
> Some slave devices may have set a dev->needed_headroom value which is
> different than the default one, most likely in order to prepend a
> hardware descriptor in front of the Ethernet frame to send. Whenever a
> new slave is added to a bridge, ensure that we update the
> needed_headroom value accordingly to account for the slave
> needed_headroom value.
>
> Signed-off-by: Florian Fainelli <f.fainelli@...il.com>
> ---
> net/bridge/br_if.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
> index aa6c9a8..c41d5fb 100644
> --- a/net/bridge/br_if.c
> +++ b/net/bridge/br_if.c
> @@ -383,6 +383,9 @@ int br_add_if(struct net_bridge *br, struct net_device *dev)
>
> netdev_update_features(br->dev);
>
> + if (br->dev->needed_headroom < dev->needed_headroom)
> + br->dev->needed_headroom = dev->needed_headroom;
> +
> spin_lock_bh(&br->lock);
> changed_addr = br_stp_recalculate_bridge_id(br);
>
I am okay with this but it only helps locally generated traffic
which is the minority on most bridge devices. It does nothing for the case
where one port needs more headroom than the packet received on the
other port. That is why a device has to always work when it receives
a packet with less headroom, usually by copying.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists