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 ---