diff options
author | Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp> | 2015-07-28 19:05:37 +0900 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-07-29 12:20:16 -0700 |
commit | df356d5e81b04dd51dd9f23f2bce7d73dd929899 (patch) | |
tree | 4650281cf54709b5a679f3cfdee075d4371dad91 /net/wireless | |
parent | dbd46ab412b8fb395f2b0ff6f6a7eec9df311550 (diff) | |
download | linux-df356d5e81b04dd51dd9f23f2bce7d73dd929899.tar.gz linux-df356d5e81b04dd51dd9f23f2bce7d73dd929899.tar.bz2 linux-df356d5e81b04dd51dd9f23f2bce7d73dd929899.zip |
bridge: Fix network header pointer for vlan tagged packets
There are several devices that can receive vlan tagged packets with
CHECKSUM_PARTIAL like tap, possibly veth and xennet.
When (multiple) vlan tagged packets with CHECKSUM_PARTIAL are forwarded
by bridge to a device with the IP_CSUM feature, they end up with checksum
error because before entering bridge, the network header is set to
ETH_HLEN (not including vlan header length) in __netif_receive_skb_core(),
get_rps_cpu(), or drivers' rx functions, and nobody fixes the pointer later.
Since the network header is exepected to be ETH_HLEN in flow-dissection
and hash-calculation in RPS in rx path, and since the header pointer fix
is needed only in tx path, set the appropriate network header on forwarding
packets.
Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/wireless')
0 files changed, 0 insertions, 0 deletions