diff options
author | Stephen Hemminger <shemminger@linux-foundation.org> | 2007-04-25 22:03:10 -0700 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-25 22:30:00 -0700 |
commit | 83aa0938ff59e8ef6d0b99260063ebe84fc84a16 (patch) | |
tree | ba5a69f01b6f1f4b24892fa0cb3cba2404645a1e /net/bridge/br_input.c | |
parent | e1ec7842df5db897516d73c76bd2a568b4abc33b (diff) | |
download | op-kernel-dev-83aa0938ff59e8ef6d0b99260063ebe84fc84a16.zip op-kernel-dev-83aa0938ff59e8ef6d0b99260063ebe84fc84a16.tar.gz |
[BRIDGE]: don't change packet type
The change to forward STP bpdu's (for usermode STP) through normal path,
changed the packet type in the process. Since link local stuff is multicast, it
should stay pkt_type = PACKET_MULTICAST. The code was probably copy/pasted
incorrectly from the bridge pseudo-device receive path.
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_input.c')
-rw-r--r-- | net/bridge/br_input.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c index 8a55276..364e0ba 100644 --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c @@ -131,12 +131,9 @@ struct sk_buff *br_handle_frame(struct net_bridge_port *p, struct sk_buff *skb) if (!is_valid_ether_addr(eth_hdr(skb)->h_source)) goto drop; - if (unlikely(is_link_local(dest))) { - skb->pkt_type = PACKET_HOST; - + if (unlikely(is_link_local(dest))) return (NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_IN, skb, skb->dev, NULL, br_handle_local_finish) == 0) ? skb : NULL; - } switch (p->state) { case BR_STATE_FORWARDING: |