diff options
author | Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> | 2007-11-11 01:03:25 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-11-11 01:03:25 -0500 |
commit | 8032b46489e50ef8f3992159abd0349b5b8e476c (patch) | |
tree | 35482e6b70db42a3627c6be262fd35783fa08152 /net/packet/af_packet.c | |
parent | 60d78c4473493674531a1df0772ca9e4d6133a62 (diff) |
[AF_PACKET]: Allow multicast traffic to be caught by ORIGDEV when bonded
The socket option for packet sockets to return the original ifindex instead
of the bonded ifindex will not match multicast traffic. Since this socket
option is the most useful for layer 2 traffic and multicast traffic, make
the option multicast-aware.
Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/packet/af_packet.c')
-rw-r--r-- | net/packet/af_packet.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 36331a5f0abe..eb6be5030c70 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c | |||
@@ -509,7 +509,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev, struct packet | |||
509 | sll->sll_hatype = dev->type; | 509 | sll->sll_hatype = dev->type; |
510 | sll->sll_protocol = skb->protocol; | 510 | sll->sll_protocol = skb->protocol; |
511 | sll->sll_pkttype = skb->pkt_type; | 511 | sll->sll_pkttype = skb->pkt_type; |
512 | if (unlikely(po->origdev) && skb->pkt_type == PACKET_HOST) | 512 | if (unlikely(po->origdev)) |
513 | sll->sll_ifindex = orig_dev->ifindex; | 513 | sll->sll_ifindex = orig_dev->ifindex; |
514 | else | 514 | else |
515 | sll->sll_ifindex = dev->ifindex; | 515 | sll->sll_ifindex = dev->ifindex; |
@@ -655,7 +655,7 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev, struct packe | |||
655 | sll->sll_hatype = dev->type; | 655 | sll->sll_hatype = dev->type; |
656 | sll->sll_protocol = skb->protocol; | 656 | sll->sll_protocol = skb->protocol; |
657 | sll->sll_pkttype = skb->pkt_type; | 657 | sll->sll_pkttype = skb->pkt_type; |
658 | if (unlikely(po->origdev) && skb->pkt_type == PACKET_HOST) | 658 | if (unlikely(po->origdev)) |
659 | sll->sll_ifindex = orig_dev->ifindex; | 659 | sll->sll_ifindex = orig_dev->ifindex; |
660 | else | 660 | else |
661 | sll->sll_ifindex = dev->ifindex; | 661 | sll->sll_ifindex = dev->ifindex; |