18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci/* Copyright (C) 2007-2020  B.A.T.M.A.N. contributors:
38c2ecf20Sopenharmony_ci *
48c2ecf20Sopenharmony_ci * Marek Lindner, Simon Wunderlich
58c2ecf20Sopenharmony_ci */
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#ifndef _NET_BATMAN_ADV_ROUTING_H_
88c2ecf20Sopenharmony_ci#define _NET_BATMAN_ADV_ROUTING_H_
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#include "main.h"
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci#include <linux/skbuff.h>
138c2ecf20Sopenharmony_ci#include <linux/types.h>
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_cibool batadv_check_management_packet(struct sk_buff *skb,
168c2ecf20Sopenharmony_ci				    struct batadv_hard_iface *hard_iface,
178c2ecf20Sopenharmony_ci				    int header_len);
188c2ecf20Sopenharmony_civoid batadv_update_route(struct batadv_priv *bat_priv,
198c2ecf20Sopenharmony_ci			 struct batadv_orig_node *orig_node,
208c2ecf20Sopenharmony_ci			 struct batadv_hard_iface *recv_if,
218c2ecf20Sopenharmony_ci			 struct batadv_neigh_node *neigh_node);
228c2ecf20Sopenharmony_ciint batadv_recv_icmp_packet(struct sk_buff *skb,
238c2ecf20Sopenharmony_ci			    struct batadv_hard_iface *recv_if);
248c2ecf20Sopenharmony_ciint batadv_recv_unicast_packet(struct sk_buff *skb,
258c2ecf20Sopenharmony_ci			       struct batadv_hard_iface *recv_if);
268c2ecf20Sopenharmony_ciint batadv_recv_frag_packet(struct sk_buff *skb,
278c2ecf20Sopenharmony_ci			    struct batadv_hard_iface *iface);
288c2ecf20Sopenharmony_ciint batadv_recv_bcast_packet(struct sk_buff *skb,
298c2ecf20Sopenharmony_ci			     struct batadv_hard_iface *recv_if);
308c2ecf20Sopenharmony_ciint batadv_recv_tt_query(struct sk_buff *skb,
318c2ecf20Sopenharmony_ci			 struct batadv_hard_iface *recv_if);
328c2ecf20Sopenharmony_ciint batadv_recv_roam_adv(struct sk_buff *skb,
338c2ecf20Sopenharmony_ci			 struct batadv_hard_iface *recv_if);
348c2ecf20Sopenharmony_ciint batadv_recv_unicast_tvlv(struct sk_buff *skb,
358c2ecf20Sopenharmony_ci			     struct batadv_hard_iface *recv_if);
368c2ecf20Sopenharmony_ciint batadv_recv_unhandled_unicast_packet(struct sk_buff *skb,
378c2ecf20Sopenharmony_ci					 struct batadv_hard_iface *recv_if);
388c2ecf20Sopenharmony_cistruct batadv_neigh_node *
398c2ecf20Sopenharmony_cibatadv_find_router(struct batadv_priv *bat_priv,
408c2ecf20Sopenharmony_ci		   struct batadv_orig_node *orig_node,
418c2ecf20Sopenharmony_ci		   struct batadv_hard_iface *recv_if);
428c2ecf20Sopenharmony_cibool batadv_window_protected(struct batadv_priv *bat_priv, s32 seq_num_diff,
438c2ecf20Sopenharmony_ci			     s32 seq_old_max_diff, unsigned long *last_reset,
448c2ecf20Sopenharmony_ci			     bool *protection_started);
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci#endif /* _NET_BATMAN_ADV_ROUTING_H_ */
47