1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18#ifndef _NET_BATMAN_ADV_SEND_H_
19#define _NET_BATMAN_ADV_SEND_H_
20
21int batadv_send_skb_packet(struct sk_buff *skb,
22 struct batadv_hard_iface *hard_iface,
23 const uint8_t *dst_addr);
24int batadv_send_skb_to_orig(struct sk_buff *skb,
25 struct batadv_orig_node *orig_node,
26 struct batadv_hard_iface *recv_if);
27void batadv_schedule_bat_ogm(struct batadv_hard_iface *hard_iface);
28int batadv_add_bcast_packet_to_list(struct batadv_priv *bat_priv,
29 const struct sk_buff *skb,
30 unsigned long delay);
31void batadv_send_outstanding_bat_ogm_packet(struct work_struct *work);
32void
33batadv_purge_outstanding_packets(struct batadv_priv *bat_priv,
34 const struct batadv_hard_iface *hard_iface);
35bool batadv_send_skb_prepare_unicast_4addr(struct batadv_priv *bat_priv,
36 struct sk_buff *skb,
37 struct batadv_orig_node *orig_node,
38 int packet_subtype);
39int batadv_send_skb_unicast(struct batadv_priv *bat_priv,
40 struct sk_buff *skb, int packet_type,
41 int packet_subtype,
42 struct batadv_orig_node *orig_node,
43 unsigned short vid);
44int batadv_send_skb_via_tt_generic(struct batadv_priv *bat_priv,
45 struct sk_buff *skb, int packet_type,
46 int packet_subtype, uint8_t *dst_hint,
47 unsigned short vid);
48int batadv_send_skb_via_gw(struct batadv_priv *bat_priv, struct sk_buff *skb,
49 unsigned short vid);
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64static inline int batadv_send_skb_via_tt(struct batadv_priv *bat_priv,
65 struct sk_buff *skb, uint8_t *dst_hint,
66 unsigned short vid)
67{
68 return batadv_send_skb_via_tt_generic(bat_priv, skb, BATADV_UNICAST, 0,
69 dst_hint, vid);
70}
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87static inline int batadv_send_skb_via_tt_4addr(struct batadv_priv *bat_priv,
88 struct sk_buff *skb,
89 int packet_subtype,
90 uint8_t *dst_hint,
91 unsigned short vid)
92{
93 return batadv_send_skb_via_tt_generic(bat_priv, skb,
94 BATADV_UNICAST_4ADDR,
95 packet_subtype, dst_hint, vid);
96}
97
98#endif
99