1 | /* SPDX-License-Identifier: GPL-2.0 */ |
---|---|
2 | /* Copyright (C) B.A.T.M.A.N. contributors: |
3 | * |
4 | * Marek Lindner |
5 | */ |
6 | |
7 | #ifndef _NET_BATMAN_ADV_SOFT_INTERFACE_H_ |
8 | #define _NET_BATMAN_ADV_SOFT_INTERFACE_H_ |
9 | |
10 | #include "main.h" |
11 | |
12 | #include <linux/kref.h> |
13 | #include <linux/netdevice.h> |
14 | #include <linux/skbuff.h> |
15 | #include <linux/types.h> |
16 | #include <net/rtnetlink.h> |
17 | |
18 | int batadv_skb_head_push(struct sk_buff *skb, unsigned int len); |
19 | void batadv_interface_rx(struct net_device *soft_iface, |
20 | struct sk_buff *skb, int hdr_size, |
21 | struct batadv_orig_node *orig_node); |
22 | bool batadv_softif_is_valid(const struct net_device *net_dev); |
23 | extern struct rtnl_link_ops batadv_link_ops; |
24 | int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid); |
25 | void batadv_softif_vlan_release(struct kref *ref); |
26 | struct batadv_softif_vlan *batadv_softif_vlan_get(struct batadv_priv *bat_priv, |
27 | unsigned short vid); |
28 | |
29 | /** |
30 | * batadv_softif_vlan_put() - decrease the vlan object refcounter and |
31 | * possibly release it |
32 | * @vlan: the vlan object to release |
33 | */ |
34 | static inline void batadv_softif_vlan_put(struct batadv_softif_vlan *vlan) |
35 | { |
36 | if (!vlan) |
37 | return; |
38 | |
39 | kref_put(kref: &vlan->refcount, release: batadv_softif_vlan_release); |
40 | } |
41 | |
42 | #endif /* _NET_BATMAN_ADV_SOFT_INTERFACE_H_ */ |
43 |