1 /* Copyright (C) 2013 B.A.T.M.A.N. contributors: 2 * 3 * Martin Hundebøll <martin@hundeboll.net> 4 * 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. 8 * 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. 13 * 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 17 * 02110-1301, USA 18 */ 19 20 #ifndef _NET_BATMAN_ADV_FRAGMENTATION_H_ 21 #define _NET_BATMAN_ADV_FRAGMENTATION_H_ 22 23 void batadv_frag_purge_orig(struct batadv_orig_node *orig, 24 bool (*check_cb)(struct batadv_frag_table_entry *)); 25 bool batadv_frag_skb_fwd(struct sk_buff *skb, 26 struct batadv_hard_iface *recv_if, 27 struct batadv_orig_node *orig_node_src); 28 bool batadv_frag_skb_buffer(struct sk_buff **skb, 29 struct batadv_orig_node *orig_node); 30 bool batadv_frag_send_packet(struct sk_buff *skb, 31 struct batadv_orig_node *orig_node, 32 struct batadv_neigh_node *neigh_node); 33 34 /** 35 * batadv_frag_check_entry - check if a list of fragments has timed out 36 * @frags_entry: table entry to check 37 * 38 * Returns true if the frags entry has timed out, false otherwise. 39 */ 40 static inline bool 41 batadv_frag_check_entry(struct batadv_frag_table_entry *frags_entry) 42 { 43 if (!hlist_empty(&frags_entry->head) && 44 batadv_has_timed_out(frags_entry->timestamp, BATADV_FRAG_TIMEOUT)) 45 return true; 46 else 47 return false; 48 } 49 50 #endif /* _NET_BATMAN_ADV_FRAGMENTATION_H_ */ 51