1 /* Copyright (C) 2007-2013 B.A.T.M.A.N. contributors:
3 * Marek Lindner, Simon Wunderlich
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of version 2 of the GNU General Public
7 * License as published by the Free Software Foundation.
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20 #ifndef _NET_BATMAN_ADV_SEND_H_
21 #define _NET_BATMAN_ADV_SEND_H_
23 int batadv_send_skb_packet(struct sk_buff *skb,
24 struct batadv_hard_iface *hard_iface,
25 const uint8_t *dst_addr);
26 int batadv_send_skb_to_orig(struct sk_buff *skb,
27 struct batadv_orig_node *orig_node,
28 struct batadv_hard_iface *recv_if);
29 void batadv_schedule_bat_ogm(struct batadv_hard_iface *hard_iface);
30 int batadv_add_bcast_packet_to_list(struct batadv_priv *bat_priv,
31 const struct sk_buff *skb,
33 void batadv_send_outstanding_bat_ogm_packet(struct work_struct *work);
35 batadv_purge_outstanding_packets(struct batadv_priv *bat_priv,
36 const struct batadv_hard_iface *hard_iface);
37 bool batadv_send_skb_prepare_unicast_4addr(struct batadv_priv *bat_priv,
39 struct batadv_orig_node *orig_node,
41 int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
42 struct sk_buff *skb, int packet_type,
47 * batadv_send_unicast_skb - send the skb encapsulated in a unicast packet
48 * @bat_priv: the bat priv with all the soft interface information
49 * @skb: the payload to send
51 * Returns 1 in case of error or 0 otherwise.
53 static inline int batadv_send_skb_unicast(struct batadv_priv *bat_priv,
56 return batadv_send_skb_generic_unicast(bat_priv, skb, BATADV_UNICAST,
61 * batadv_send_4addr_unicast_skb - send the skb encapsulated in a unicast 4addr
63 * @bat_priv: the bat priv with all the soft interface information
64 * @skb: the payload to send
65 * @packet_subtype: the unicast 4addr packet subtype to use
67 * Returns 1 in case of error or 0 otherwise.
69 static inline int batadv_send_skb_unicast_4addr(struct batadv_priv *bat_priv,
73 return batadv_send_skb_generic_unicast(bat_priv, skb,
78 #endif /* _NET_BATMAN_ADV_SEND_H_ */