xref: /openbmc/linux/net/batman-adv/routing.h (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
17db7d9f3SSven Eckelmann /* SPDX-License-Identifier: GPL-2.0 */
2*cfa55c6dSSven Eckelmann /* Copyright (C) B.A.T.M.A.N. contributors:
3c6c8fea2SSven Eckelmann  *
4c6c8fea2SSven Eckelmann  * Marek Lindner, Simon Wunderlich
5c6c8fea2SSven Eckelmann  */
6c6c8fea2SSven Eckelmann 
7c6c8fea2SSven Eckelmann #ifndef _NET_BATMAN_ADV_ROUTING_H_
8c6c8fea2SSven Eckelmann #define _NET_BATMAN_ADV_ROUTING_H_
9c6c8fea2SSven Eckelmann 
101e2c2a4fSSven Eckelmann #include "main.h"
111e2c2a4fSSven Eckelmann 
1268a600deSSven Eckelmann #include <linux/skbuff.h>
131e2c2a4fSSven Eckelmann #include <linux/types.h>
141e2c2a4fSSven Eckelmann 
1530d3c511SSven Eckelmann bool batadv_check_management_packet(struct sk_buff *skb,
1656303d34SSven Eckelmann 				    struct batadv_hard_iface *hard_iface,
17c3e29312SMarek Lindner 				    int header_len);
1856303d34SSven Eckelmann void batadv_update_route(struct batadv_priv *bat_priv,
1956303d34SSven Eckelmann 			 struct batadv_orig_node *orig_node,
207351a482SSimon Wunderlich 			 struct batadv_hard_iface *recv_if,
2156303d34SSven Eckelmann 			 struct batadv_neigh_node *neigh_node);
2256303d34SSven Eckelmann int batadv_recv_icmp_packet(struct sk_buff *skb,
2356303d34SSven Eckelmann 			    struct batadv_hard_iface *recv_if);
2456303d34SSven Eckelmann int batadv_recv_unicast_packet(struct sk_buff *skb,
2556303d34SSven Eckelmann 			       struct batadv_hard_iface *recv_if);
26610bfc6bSMartin Hundebøll int batadv_recv_frag_packet(struct sk_buff *skb,
27610bfc6bSMartin Hundebøll 			    struct batadv_hard_iface *iface);
2856303d34SSven Eckelmann int batadv_recv_bcast_packet(struct sk_buff *skb,
2956303d34SSven Eckelmann 			     struct batadv_hard_iface *recv_if);
30ef261577SMarek Lindner int batadv_recv_unicast_tvlv(struct sk_buff *skb,
31ef261577SMarek Lindner 			     struct batadv_hard_iface *recv_if);
32a1f1ac5cSSimon Wunderlich int batadv_recv_unhandled_unicast_packet(struct sk_buff *skb,
33a1f1ac5cSSimon Wunderlich 					 struct batadv_hard_iface *recv_if);
3456303d34SSven Eckelmann struct batadv_neigh_node *
3556303d34SSven Eckelmann batadv_find_router(struct batadv_priv *bat_priv,
3656303d34SSven Eckelmann 		   struct batadv_orig_node *orig_node,
37f3b3d901SSimon Wunderlich 		   struct batadv_hard_iface *recv_if);
384b426b10SSven Eckelmann bool batadv_window_protected(struct batadv_priv *bat_priv, s32 seq_num_diff,
3981f02683SSimon Wunderlich 			     s32 seq_old_max_diff, unsigned long *last_reset,
4081f02683SSimon Wunderlich 			     bool *protection_started);
41c6c8fea2SSven Eckelmann 
42c6c8fea2SSven Eckelmann #endif /* _NET_BATMAN_ADV_ROUTING_H_ */
43