aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>2007-11-11 01:03:25 -0500
committerDavid S. Miller <davem@davemloft.net>2007-11-11 01:03:25 -0500
commit8032b46489e50ef8f3992159abd0349b5b8e476c (patch)
tree35482e6b70db42a3627c6be262fd35783fa08152
parent60d78c4473493674531a1df0772ca9e4d6133a62 (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>
-rw-r--r--net/packet/af_packet.c4
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;