xref: /linux/include/net/netkit.h (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
1  /* SPDX-License-Identifier: GPL-2.0 */
2  /* Copyright (c) 2023 Isovalent */
3  #ifndef __NET_NETKIT_H
4  #define __NET_NETKIT_H
5  
6  #include <linux/bpf.h>
7  
8  #ifdef CONFIG_NETKIT
9  int netkit_prog_attach(const union bpf_attr *attr, struct bpf_prog *prog);
10  int netkit_link_attach(const union bpf_attr *attr, struct bpf_prog *prog);
11  int netkit_prog_detach(const union bpf_attr *attr, struct bpf_prog *prog);
12  int netkit_prog_query(const union bpf_attr *attr, union bpf_attr __user *uattr);
13  INDIRECT_CALLABLE_DECLARE(struct net_device *netkit_peer_dev(struct net_device *dev));
14  #else
netkit_prog_attach(const union bpf_attr * attr,struct bpf_prog * prog)15  static inline int netkit_prog_attach(const union bpf_attr *attr,
16  				     struct bpf_prog *prog)
17  {
18  	return -EINVAL;
19  }
20  
netkit_link_attach(const union bpf_attr * attr,struct bpf_prog * prog)21  static inline int netkit_link_attach(const union bpf_attr *attr,
22  				     struct bpf_prog *prog)
23  {
24  	return -EINVAL;
25  }
26  
netkit_prog_detach(const union bpf_attr * attr,struct bpf_prog * prog)27  static inline int netkit_prog_detach(const union bpf_attr *attr,
28  				     struct bpf_prog *prog)
29  {
30  	return -EINVAL;
31  }
32  
netkit_prog_query(const union bpf_attr * attr,union bpf_attr __user * uattr)33  static inline int netkit_prog_query(const union bpf_attr *attr,
34  				    union bpf_attr __user *uattr)
35  {
36  	return -EINVAL;
37  }
38  
netkit_peer_dev(struct net_device * dev)39  static inline struct net_device *netkit_peer_dev(struct net_device *dev)
40  {
41  	return NULL;
42  }
43  #endif /* CONFIG_NETKIT */
44  #endif /* __NET_NETKIT_H */
45