diff options
author | David S. Miller <davem@davemloft.net> | 2010-05-10 23:03:26 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-05-10 23:03:26 -0700 |
commit | d250fe91ae129bff0968e685cc9c466d3a5e3482 (patch) | |
tree | e38b7628a5c6afb80c22341759f392585e558cb1 /net/bridge/br_device.c | |
parent | 1ae5dc342ac78d7a42965fd1f323815f6f5ef2c1 (diff) | |
parent | b56f2d55c6c22b0c5774b3b22e336fb6cc5f4094 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6
Diffstat (limited to 'net/bridge/br_device.c')
-rw-r--r-- | net/bridge/br_device.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c index 074c59690fc5..f15f9c4a0dd2 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c @@ -17,6 +17,7 @@ #include <linux/etherdevice.h> #include <linux/ethtool.h> #include <linux/list.h> +#include <linux/netfilter_bridge.h> #include <asm/uaccess.h> #include "br_private.h" @@ -30,6 +31,13 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev) struct net_bridge_mdb_entry *mdst; struct br_cpu_netstats *brstats = this_cpu_ptr(br->stats); +#ifdef CONFIG_BRIDGE_NETFILTER + if (skb->nf_bridge && (skb->nf_bridge->mask & BRNF_BRIDGED_DNAT)) { + br_nf_pre_routing_finish_bridge_slow(skb); + return NETDEV_TX_OK; + } +#endif + brstats->tx_packets++; brstats->tx_bytes += skb->len; |