aboutsummaryrefslogtreecommitdiffstats
path: root/net/batman-adv/send.c
diff options
context:
space:
mode:
authorLinus Lüssing <linus.luessing@web.de>2014-02-15 11:47:52 -0500
committerAntonio Quartulli <antonio@meshcoding.com>2014-03-22 04:18:57 -0400
commit1d8ab8d3c176d31530b3ffd4547cf731018e2a45 (patch)
treeb62208972cdfb70a853ff5177c29154fd165bea7 /net/batman-adv/send.c
parent60432d756cf06e597ef9da511402dd059b112447 (diff)
batman-adv: Modified forwarding behaviour for multicast packets
With this patch a multicast packet is not always simply flooded anymore, the behaviour for the following cases is changed to reduce unnecessary overhead: If all nodes within the horizon of a certain node have signalized multicast listener announcement capability then an IPv6 multicast packet with a destination of IPv6 link-local scope (excluding ff02::1) coming from the upstream of this node... * ...is dropped if there is no according multicast listener in the translation table, * ...is forwarded via unicast if there is a single node with interested multicast listeners * ...and otherwise still gets flooded. Signed-off-by: Linus Lüssing <linus.luessing@web.de> Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch> Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
Diffstat (limited to 'net/batman-adv/send.c')
-rw-r--r--net/batman-adv/send.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c
index ce163d50e5d7..8bee5e8536b7 100644
--- a/net/batman-adv/send.c
+++ b/net/batman-adv/send.c
@@ -248,11 +248,11 @@ out:
248 * 248 *
249 * Returns NET_XMIT_DROP in case of error or NET_XMIT_SUCCESS otherwise. 249 * Returns NET_XMIT_DROP in case of error or NET_XMIT_SUCCESS otherwise.
250 */ 250 */
251static int batadv_send_skb_unicast(struct batadv_priv *bat_priv, 251int batadv_send_skb_unicast(struct batadv_priv *bat_priv,
252 struct sk_buff *skb, int packet_type, 252 struct sk_buff *skb, int packet_type,
253 int packet_subtype, 253 int packet_subtype,
254 struct batadv_orig_node *orig_node, 254 struct batadv_orig_node *orig_node,
255 unsigned short vid) 255 unsigned short vid)
256{ 256{
257 struct ethhdr *ethhdr; 257 struct ethhdr *ethhdr;
258 struct batadv_unicast_packet *unicast_packet; 258 struct batadv_unicast_packet *unicast_packet;