2015-04-23 14:16:35 +03:00
/* Copyright (C) 2014-2015 B.A.T.M.A.N. contributors:
2014-02-15 20:47:49 +04:00
*
* Linus Lüssing
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation .
*
* This program is distributed in the hope that it will be useful , but
* WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
* General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , see < http : //www.gnu.org/licenses/>.
*/
# ifndef _NET_BATMAN_ADV_MULTICAST_H_
# define _NET_BATMAN_ADV_MULTICAST_H_
2015-04-17 20:40:28 +03:00
# include "main.h"
struct batadv_orig_node ;
struct batadv_priv ;
struct sk_buff ;
2014-02-15 20:47:52 +04:00
/**
* batadv_forw_mode - the way a packet should be forwarded as
* @ BATADV_FORW_ALL : forward the packet to all nodes ( currently via classic
* flooding )
* @ BATADV_FORW_SINGLE : forward the packet to a single node ( currently via the
* BATMAN unicast routing protocol )
* @ BATADV_FORW_NONE : don ' t forward , drop it
*/
enum batadv_forw_mode {
BATADV_FORW_ALL ,
BATADV_FORW_SINGLE ,
BATADV_FORW_NONE ,
} ;
2014-02-15 20:47:49 +04:00
# ifdef CONFIG_BATMAN_ADV_MCAST
void batadv_mcast_mla_update ( struct batadv_priv * bat_priv ) ;
2014-02-15 20:47:52 +04:00
enum batadv_forw_mode
batadv_mcast_forw_mode ( struct batadv_priv * bat_priv , struct sk_buff * skb ,
struct batadv_orig_node * * mcast_single_orig ) ;
2014-02-15 20:47:51 +04:00
void batadv_mcast_init ( struct batadv_priv * bat_priv ) ;
2014-02-15 20:47:49 +04:00
void batadv_mcast_free ( struct batadv_priv * bat_priv ) ;
2014-02-15 20:47:51 +04:00
void batadv_mcast_purge_orig ( struct batadv_orig_node * orig_node ) ;
2014-02-15 20:47:49 +04:00
# else
static inline void batadv_mcast_mla_update ( struct batadv_priv * bat_priv )
{
}
2014-02-15 20:47:52 +04:00
static inline enum batadv_forw_mode
batadv_mcast_forw_mode ( struct batadv_priv * bat_priv , struct sk_buff * skb ,
struct batadv_orig_node * * mcast_single_orig )
{
return BATADV_FORW_ALL ;
}
2014-02-15 20:47:51 +04:00
static inline int batadv_mcast_init ( struct batadv_priv * bat_priv )
{
return 0 ;
}
2014-02-15 20:47:49 +04:00
static inline void batadv_mcast_free ( struct batadv_priv * bat_priv )
{
}
2014-02-15 20:47:51 +04:00
static inline void batadv_mcast_purge_orig ( struct batadv_orig_node * orig_node )
{
}
2014-02-15 20:47:49 +04:00
# endif /* CONFIG_BATMAN_ADV_MCAST */
# endif /* _NET_BATMAN_ADV_MULTICAST_H_ */