br_multicast.c (890ca861f868a10617029ffc87eae7d48ea6876c) | br_multicast.c (f0b4eeced518c632210ef2aea44fc92cc9e86cce) |
---|---|
1/* 2 * Bridge multicast support. 3 * 4 * Copyright (c) 2010 Herbert Xu <herbert@gondor.apana.org.au> 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License as published by the Free 8 * Software Foundation; either version 2 of the License, or (at your option) --- 799 unchanged lines hidden (view full) --- 808{ 809 struct sk_buff *skb; 810 811 skb = br_multicast_alloc_query(br, ip); 812 if (!skb) 813 return; 814 815 if (port) { | 1/* 2 * Bridge multicast support. 3 * 4 * Copyright (c) 2010 Herbert Xu <herbert@gondor.apana.org.au> 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License as published by the Free 8 * Software Foundation; either version 2 of the License, or (at your option) --- 799 unchanged lines hidden (view full) --- 808{ 809 struct sk_buff *skb; 810 811 skb = br_multicast_alloc_query(br, ip); 812 if (!skb) 813 return; 814 815 if (port) { |
816 __skb_push(skb, sizeof(struct ethhdr)); | |
817 skb->dev = port->dev; 818 NF_HOOK(NFPROTO_BRIDGE, NF_BR_LOCAL_OUT, skb, NULL, skb->dev, | 816 skb->dev = port->dev; 817 NF_HOOK(NFPROTO_BRIDGE, NF_BR_LOCAL_OUT, skb, NULL, skb->dev, |
819 dev_queue_xmit); | 818 br_dev_queue_push_xmit); |
820 } else { 821 br_multicast_select_own_querier(br, ip, skb); 822 netif_rx(skb); 823 } 824} 825 826static void br_multicast_send_query(struct net_bridge *br, 827 struct net_bridge_port *port, --- 1475 unchanged lines hidden --- | 819 } else { 820 br_multicast_select_own_querier(br, ip, skb); 821 netif_rx(skb); 822 } 823} 824 825static void br_multicast_send_query(struct net_bridge *br, 826 struct net_bridge_port *port, --- 1475 unchanged lines hidden --- |