[NETFILTER]: bridge: fix missing link layer headers on outgoing routed packets
commit4a9ecd5960e6a7814f6e3405807d49010ffe3a88
authorPatrick McHardy <kaber@trash.net>
Thu, 13 Dec 2007 17:32:04 +0000 (13 09:32 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Fri, 14 Dec 2007 21:54:39 +0000 (14 13:54 -0800)
tree974917ceecf5b554dc28421ebff060efc6ef2fa8
parent6f229d76b4c4a7fae601ea9398b23c2b426ab3b9
[NETFILTER]: bridge: fix missing link layer headers on outgoing routed packets

As reported by Damien Thebault, the double POSTROUTING hook invocation
fix caused outgoing packets routed between two bridges to appear without
a link-layer header. The reason for this is that we're skipping the
br_nf_post_routing hook for routed packets now and don't save the
original link layer header, but nevertheless tries to restore it on
output, causing corruption.

The root cause for this is that skb->nf_bridge has no clearly defined
lifetime and is used to indicate all kind of things, but that is
quite complicated to fix. For now simply don't touch these packets
and handle them like packets from any other device.

Tested-by: Damien Thebault <damien.thebault@gmail.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netfilter_bridge.h