On Tue, 15 Aug 2006 23:31:21 -0400 "Jon Sjoberg" <jsjoberg at djasolutions.com> wrote: > Hi all, > > Noticed that br_nf_pre_routing has some code to handle VLANs, but does not > update the nh header. This appears to cause the IP validity checks to fail > (i.e. "if (iph->ihl < 5..."). > > There is a check: > if (skb->protocol == __constant_htons(ETH_P_8021Q)){ > sk_pull(skb, VLAN_HLEN); > } > > If this was changed to: > if (skb->protocol == __constant_htons(ETH_P_8021Q)){ > sk_pull(skb, VLAN_HLEN); > skb->nh.raw += VLAN_HLEN; > } > > the checks pass. Note that this updated behavior is already doen elsewhere > in the code. > > Thanks, > Jon You are looking at old code, it was fixed in the current 2.6 tree. The skb_pull had to be changed to skb_pull_rcsum as well.