[Bridge] 802.1q packets

richardvoigt at gmail.com richardvoigt at gmail.com
Tue Jul 22 20:51:38 PDT 2008


On Tue, Jul 22, 2008 at 9:59 PM, Stephen Hemminger <shemminger at vyatta.com>
wrote:

> On Tue, 22 Jul 2008 21:35:46 +0200
> Adam Osuchowski <Adam.Osuchowski at polsl.pl> wrote:
>
> > Fulvio Ricciardi wrote:
> > > Thanks for the patch
> >
> > This patch has one shortcoming. Better version (with PPPoE support as
> well)
> > is here:
> >
> > https://lists.linux-foundation.org/pipermail/bridge/2007-May/005447.html
> >
> > > that I hope developers will include it in the vanilla Kernel
> > > as soon as possible.
> >
> > Don't be under the illusion that it will be done quickly (if at all).
> > I have been waiting for that since I reported bug.
> >
>
> Problem has been fixed since 2.6.17 (over 2 yrs ago).
> Look before you whine.


If I'm reading that thread correctly, it is a patch against 2.6.21 for a
problem encountered in 2.6.17 and later.


>
> ------------------------------------------------------
>
> commit 85ca719e5756d79ea0f10c469e3762462ac45e22
> Author: Stephen Hemminger <shemminger at osdl.org>
> Date:   Wed Apr 26 02:39:19 2006 -0700
>
>    [BRIDGE]: allow full size vlan packets
>
>    Need to allow for VLAN header when bridging.
>
>    Signed-off-by: Stephen Hemminger <shemminger at osdl.org>
>    Signed-off-by: David S. Miller <davem at davemloft.net>
>
> diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c
> index 2d24fb4..56f3aa4 100644
> --- a/net/bridge/br_forward.c
> +++ b/net/bridge/br_forward.c
> @@ -16,6 +16,7 @@
>  #include <linux/kernel.h>
>  #include <linux/netdevice.h>
>  #include <linux/skbuff.h>
> +#include <linux/if_vlan.h>
>  #include <linux/netfilter_bridge.h>
>  #include "br_private.h"
>
> @@ -29,10 +30,15 @@ static inline int should_deliver(const struct
> net_bridge_port *p,
>        return 1;
>  }
>
> +static inline unsigned packet_length(const struct sk_buff *skb)
> +{
> +       return skb->len - (skb->protocol == htons(ETH_P_8021Q) ? VLAN_HLEN
> : 0);
> +}
> +
>  int br_dev_queue_push_xmit(struct sk_buff *skb)
>  {
>        /* drop mtu oversized packets except tso */
> -       if (skb->len > skb->dev->mtu && !skb_shinfo(skb)->tso_size)
> +       if (packet_length(skb) > skb->dev->mtu &&
> !skb_shinfo(skb)->tso_size)
>                kfree_skb(skb);
>        else {
>  #ifdef CONFIG_BRIDGE_NETFILTER
>
> _______________________________________________
> Bridge mailing list
> Bridge at lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/bridge
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.linux-foundation.org/pipermail/bridge/attachments/20080723/3a149298/attachment.htm 


More information about the Bridge mailing list